home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 11 / AMUG BBS in a Box Volume XI (April 1994) (MacWizards).iso / Files / Tele / C / Comet2.1.3.sit / Comet / textedit.c < prev    next >
MacBinary  |  1991-06-25  |  24.8 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: textedit.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Tue Jun 25 14:25:00 1991, modified Tue Jun 25 14:25:00 1991, creator 'MPS ', type ASCII, 24755 bytes "textedit.c" , at 0x6133 382 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 74 65 78 74 65 64 | 69 74 2e 63 00 00 00 00 |..texted|it.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 60 b3 00 | 00 01 7e a4 8d 3a fc a4 |.....`..|..~..:..|
|00000060| 8d 3a fc 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.:......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 6b a2 00 00 |........|....k...|
|00000080| 2f 2a 0d 09 43 6f 70 79 | 72 69 67 68 74 20 43 6f |/*..Copy|right Co|
|00000090| 72 6e 65 6c 6c 20 55 6e | 69 76 65 72 73 69 74 79 |rnell Un|iversity|
|000000a0| 20 31 39 38 36 2e 20 20 | 41 6c 6c 20 72 69 67 68 | 1986. |All righ|
|000000b0| 74 73 20 61 72 65 20 72 | 65 73 65 72 76 65 64 2e |ts are r|eserved.|
|000000c0| 0d 09 0d 09 73 63 72 69 | 6e 69 74 2e 63 20 63 6f |....scri|nit.c co|
|000000d0| 6e 74 61 69 6e 73 20 73 | 63 72 5f 69 6e 69 74 2c |ntains s|cr_init,|
|000000e0| 20 77 68 69 63 68 20 69 | 6e 69 74 69 61 6c 69 7a | which i|nitializ|
|000000f0| 65 73 20 74 68 65 20 73 | 63 72 65 65 6e 20 61 6e |es the s|creen an|
|00000100| 64 0d 09 63 72 65 61 74 | 65 20 46 4f 4e 54 20 62 |d..creat|e FONT b|
|00000110| 69 74 6d 61 70 73 20 69 | 66 20 6e 65 65 64 65 64 |itmaps i|f needed|
|00000120| 20 28 6f 6e 20 74 68 65 | 20 73 6d 61 6c 6c 2d 73 | (on the| small-s|
|00000130| 63 72 65 65 6e 20 4d 61 | 63 29 2c 0d 09 61 6e 64 |creen Ma|c),..and|
|00000140| 20 61 20 20 72 6f 75 74 | 69 6e 65 20 74 6f 20 73 | a rout|ine to s|
|00000150| 61 76 65 20 74 68 65 20 | 73 63 72 65 65 6e 20 6c |ave the |screen l|
|00000160| 6f 63 61 74 69 6f 6e 20 | 6f 6e 20 65 78 69 74 2e |ocation |on exit.|
|00000170| 0d 0d 2a 2f 0d 0d 0d 0d | 23 69 6e 63 6c 75 64 65 |..*/....|#include|
|00000180| 09 3c 65 6d 2e 68 3e 0d | 0d 23 69 6e 63 6c 75 64 |.<em.h>.|.#includ|
|00000190| 65 09 3c 33 32 37 30 2e | 68 3e 0d 23 69 6e 63 6c |e.<3270.|h>.#incl|
|000001a0| 75 64 65 09 3c 68 31 39 | 2e 68 3e 0d 23 69 6e 63 |ude.<h19|.h>.#inc|
|000001b0| 6c 75 64 65 09 3c 63 6f | 6e 66 69 67 2e 68 3e 0d |lude.<co|nfig.h>.|
|000001c0| 23 69 6e 63 6c 75 64 65 | 09 3c 6d 61 63 64 65 66 |#include|.<macdef|
|000001d0| 73 2e 68 3e 0d 23 69 6e | 63 6c 75 64 65 09 3c 63 |s.h>.#in|clude.<c|
|000001e0| 6e 74 6c 64 65 66 73 2e | 68 3e 0d 23 69 6e 63 6c |ntldefs.|h>.#incl|
|000001f0| 75 64 65 09 3c 72 63 6f | 64 65 73 2e 68 3e 0d 0d |ude.<rco|des.h>..|
|00000200| 23 64 65 66 69 6e 65 20 | 53 42 41 52 57 49 44 54 |#define |SBARWIDT|
|00000210| 48 09 31 36 09 09 09 2f | 2a 20 23 20 70 69 78 65 |H.16.../|* # pixe|
|00000220| 6c 73 20 73 63 72 6f 6c | 6c 20 62 61 72 20 77 69 |ls scrol|l bar wi|
|00000230| 64 74 68 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 54 |dth */.#|define T|
|00000240| 45 58 54 49 4e 53 45 54 | 09 36 09 09 09 2f 2a 20 |EXTINSET|.6.../* |
|00000250| 65 78 61 63 74 6c 79 20 | 38 30 20 63 68 61 72 61 |exactly |80 chara|
|00000260| 63 74 65 72 73 20 66 69 | 74 20 2a 2f 0d 0d 43 75 |cters fi|t */..Cu|
|00000270| 72 73 48 61 6e 64 6c 65 | 20 74 65 78 74 63 75 72 |rsHandle| textcur|
|00000280| 73 6f 72 3b 20 09 09 2f | 2a 20 63 75 73 74 6f 6d |sor; ../|* custom|
|00000290| 20 74 65 78 74 20 62 65 | 61 6d 20 2a 2f 0d 0d 70 | text be|am */..p|
|000002a0| 61 73 63 61 6c 20 76 6f | 69 64 09 09 52 65 70 41 |ascal vo|id..RepA|
|000002b0| 63 74 69 6f 6e 28 29 3b | 0d 70 61 73 63 61 6c 20 |ction();|.pascal |
|000002c0| 42 6f 6f 6c 65 61 6e 09 | 43 6c 69 63 6b 4c 6f 6f |Boolean.|ClickLoo|
|000002d0| 70 28 29 3b 0d 0d 09 09 | 0d 73 74 72 75 63 74 20 |p();....|.struct |
|000002e0| 74 65 78 74 73 20 2a 20 | 74 65 78 74 73 70 3b 09 |texts * |textsp;.|
|000002f0| 09 09 2f 2a 20 63 75 72 | 72 65 6e 74 20 74 65 78 |../* cur|rent tex|
|00000300| 74 20 65 64 69 74 20 73 | 74 72 75 63 74 75 72 65 |t edit s|tructure|
|00000310| 20 66 6f 72 20 74 72 61 | 63 6b 69 6e 67 20 2a 2f | for tra|cking */|
|00000320| 0d 0d 23 69 66 64 65 66 | 20 55 53 45 54 45 58 54 |..#ifdef| USETEXT|
|00000330| 57 49 4e 44 4f 57 53 0d | 0d 74 65 78 74 77 69 6e |WINDOWS.|.textwin|
|00000340| 69 74 28 29 0d 7b 0d 09 | 52 65 63 74 20 76 69 65 |it().{..|Rect vie|
|00000350| 77 72 65 63 74 3b 0d 09 | 52 65 63 74 20 64 65 73 |wrect;..|Rect des|
|00000360| 74 72 65 63 74 3b 0d 09 | 52 65 63 74 20 6e 75 6c |trect;..|Rect nul|
|00000370| 6c 72 65 63 74 3b 0d 09 | 52 65 63 74 20 73 42 61 |lrect;..|Rect sBa|
|00000380| 72 52 65 63 74 3b 0d 0d | 09 74 65 78 74 63 75 72 |rRect;..|.textcur|
|00000390| 73 6f 72 20 3d 20 47 65 | 74 43 75 72 73 6f 72 28 |sor = Ge|tCursor(|
|000003a0| 69 42 65 61 6d 43 75 72 | 73 6f 72 29 3b 0d 09 0d |iBeamCur|sor);...|
|000003b0| 09 53 65 74 50 6f 72 74 | 28 65 6d 64 70 2d 3e 74 |.SetPort|(emdp->t|
|000003c0| 65 78 74 77 69 6e 64 6f | 77 29 3b 0d 0d 09 54 65 |extwindo|w);...Te|
|000003d0| 78 74 46 6f 6e 74 28 65 | 6d 64 70 2d 3e 6e 6f 72 |xtFont(e|mdp->nor|
|000003e0| 6d 66 6f 6e 74 29 3b 0d | 09 54 65 78 74 53 69 7a |mfont);.|.TextSiz|
|000003f0| 65 28 65 6d 64 70 2d 3e | 66 6f 6e 74 73 69 7a 65 |e(emdp->|fontsize|
|00000400| 29 3b 0d 09 0d 09 2f 2a | 20 73 65 74 20 75 70 20 |);..../*| set up |
|00000410| 74 65 78 74 20 65 64 69 | 74 20 72 65 63 6f 72 64 |text edi|t record|
|00000420| 20 2a 2f 0d 09 73 65 74 | 74 65 76 69 65 77 28 26 | */..set|teview(&|
|00000430| 76 69 65 77 72 65 63 74 | 29 3b 0d 09 73 65 74 74 |viewrect|);..sett|
|00000440| 65 64 65 73 74 28 26 64 | 65 73 74 72 65 63 74 29 |edest(&d|estrect)|
|00000450| 3b 0d 09 0d 09 65 6d 64 | 70 2d 3e 74 65 78 74 68 |;....emd|p->texth|
|00000460| 61 6e 64 20 3d 20 54 45 | 4e 65 77 28 26 64 65 73 |and = TE|New(&des|
|00000470| 74 72 65 63 74 2c 20 26 | 76 69 65 77 72 65 63 74 |trect, &|viewrect|
|00000480| 29 3b 0d 09 28 2a 65 6d | 64 70 2d 3e 74 65 78 74 |);..(*em|dp->text|
|00000490| 68 61 6e 64 29 2d 3e 74 | 78 46 6f 6e 74 20 3d 20 |hand)->t|xFont = |
|000004a0| 65 6d 64 70 2d 3e 6e 6f | 72 6d 66 6f 6e 74 3b 0d |emdp->no|rmfont;.|
|000004b0| 09 28 2a 65 6d 64 70 2d | 3e 74 65 78 74 68 61 6e |.(*emdp-|>texthan|
|000004c0| 64 29 2d 3e 74 78 53 69 | 7a 65 20 3d 20 65 6d 64 |d)->txSi|ze = emd|
|000004d0| 70 2d 3e 66 6f 6e 74 73 | 69 7a 65 3b 0d 0d 09 28 |p->fonts|ize;...(|
|000004e0| 2a 65 6d 64 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 |*emdp->t|exthand)|
|000004f0| 2d 3e 63 6c 69 6b 4c 6f | 6f 70 20 3d 20 28 50 72 |->clikLo|op = (Pr|
|00000500| 6f 63 50 74 72 29 20 43 | 6c 69 63 6b 4c 6f 6f 70 |ocPtr) C|lickLoop|
|00000510| 3b 0d 0d 09 6e 75 6c 6c | 72 65 63 74 2e 74 6f 70 |;...null|rect.top|
|00000520| 20 3d 20 6e 75 6c 6c 72 | 65 63 74 2e 6c 65 66 74 | = nullr|ect.left|
|00000530| 20 3d 20 6e 75 6c 6c 72 | 65 63 74 2e 62 6f 74 74 | = nullr|ect.bott|
|00000540| 6f 6d 20 3d 20 6e 75 6c | 6c 72 65 63 74 2e 72 69 |om = nul|lrect.ri|
|00000550| 67 68 74 20 3d 20 30 3b | 0d 09 74 65 73 65 74 73 |ght = 0;|..tesets|
|00000560| 65 6c 28 20 28 6c 6f 6e | 67 29 20 30 2c 20 28 6c |el( (lon|g) 0, (l|
|00000570| 6f 6e 67 29 20 30 2c 20 | 65 6d 64 70 2d 3e 74 65 |ong) 0, |emdp->te|
|00000580| 78 74 68 61 6e 64 29 3b | 0d 09 54 45 4b 65 79 28 |xthand);|..TEKey(|
|00000590| 42 53 2c 20 65 6d 64 70 | 2d 3e 74 65 78 74 68 61 |BS, emdp|->textha|
|000005a0| 6e 64 29 3b 0d 09 09 2f | 2a 20 66 69 78 20 54 45 |nd);.../|* fix TE|
|000005b0| 20 63 75 72 73 6f 72 20 | 70 6f 73 69 74 69 6f 6e | cursor |position|
|000005c0| 69 6e 67 20 70 72 6f 62 | 6c 65 6d 2d 2d 73 74 72 |ing prob|lem--str|
|000005d0| 61 6e 67 65 20 62 75 74 | 20 74 72 75 65 21 20 2a |ange but| true! *|
|000005e0| 2f 0d 0d 09 2f 2a 20 61 | 64 64 20 48 6f 72 6e 69 |/.../* a|dd Horni|
|000005f0| 67 20 73 63 72 6f 6c 6c | 62 61 72 20 2a 2f 0d 09 |g scroll|bar */..|
|00000600| 73 42 61 72 52 65 63 74 | 20 3d 20 65 6d 64 70 2d |sBarRect| = emdp-|
|00000610| 3e 74 65 78 74 77 69 6e | 64 6f 77 2d 3e 70 6f 72 |>textwin|dow->por|
|00000620| 74 52 65 63 74 3b 0d 09 | 49 6e 73 65 74 52 65 63 |tRect;..|InsetRec|
|00000630| 74 28 26 73 42 61 72 52 | 65 63 74 2c 20 2d 31 2c |t(&sBarR|ect, -1,|
|00000640| 20 2d 31 20 29 3b 0d 09 | 73 42 61 72 52 65 63 74 | -1 );..|sBarRect|
|00000650| 2e 6c 65 66 74 20 3d 20 | 73 42 61 72 52 65 63 74 |.left = |sBarRect|
|00000660| 2e 72 69 67 68 74 20 2d | 20 53 42 41 52 57 49 44 |.right -| SBARWID|
|00000670| 54 48 3b 0d 09 73 42 61 | 72 52 65 63 74 2e 62 6f |TH;..sBa|rRect.bo|
|00000680| 74 74 6f 6d 20 2d 3d 20 | 28 53 42 41 52 57 49 44 |ttom -= |(SBARWID|
|00000690| 54 48 20 2d 20 31 29 3b | 09 09 09 2f 2a 20 73 70 |TH - 1);|.../* sp|
|000006a0| 61 63 65 20 66 6f 72 20 | 67 72 6f 77 20 7a 6f 6e |ace for |grow zon|
|000006b0| 65 20 2a 2f 0d 09 65 6d | 64 70 2d 3e 76 42 61 72 |e */..em|dp->vBar|
|000006c0| 48 61 6e 64 20 3d 20 4e | 65 77 43 6f 6e 74 72 6f |Hand = N|ewContro|
|000006d0| 6c 28 20 65 6d 64 70 2d | 3e 74 65 78 74 77 69 6e |l( emdp-|>textwin|
|000006e0| 64 6f 77 2c 20 26 73 42 | 61 72 52 65 63 74 2c 20 |dow, &sB|arRect, |
|000006f0| 22 22 2c 20 28 42 6f 6f | 6c 65 61 6e 29 20 46 41 |"", (Boo|lean) FA|
|00000700| 4c 53 45 2c 0d 09 09 09 | 09 09 09 09 30 2c 20 30 |LSE,....|....0, 0|
|00000710| 2c 20 53 63 72 6f 6c 6c | 4d 61 78 28 65 6d 64 70 |, Scroll|Max(emdp|
|00000720| 29 2c 20 73 63 72 6f 6c | 6c 42 61 72 50 72 6f 63 |), scrol|lBarProc|
|00000730| 2c 20 30 4c 20 29 3b 0d | 0d 09 53 65 74 50 6f 72 |, 0L );.|..SetPor|
|00000740| 74 28 65 6d 77 69 6e 64 | 6f 77 29 3b 0d 7d 0d 0d |t(emwind|ow);.}..|
|00000750| 0d 2f 2a 20 73 65 74 20 | 74 68 65 20 77 69 64 74 |./* set |the widt|
|00000760| 68 20 61 6e 64 20 66 6f | 6e 74 73 69 7a 65 20 6f |h and fo|ntsize o|
|00000770| 66 20 74 68 65 20 74 65 | 78 74 20 77 69 6e 64 6f |f the te|xt windo|
|00000780| 77 2e 20 20 68 73 69 7a | 65 20 69 73 20 74 68 65 |w. hsiz|e is the|
|00000790| 20 65 6d 75 6c 61 74 6f | 72 20 61 72 65 61 20 77 | emulato|r area w|
|000007a0| 69 64 74 68 20 2a 2f 0d | 0d 74 65 78 74 77 73 69 |idth */.|.textwsi|
|000007b0| 7a 65 28 68 73 69 7a 65 | 2c 20 76 73 69 7a 65 29 |ze(hsize|, vsize)|
|000007c0| 0d 69 6e 74 20 68 73 69 | 7a 65 3b 0d 69 6e 74 20 |.int hsi|ze;.int |
|000007d0| 76 73 69 7a 65 3b 0d 7b | 0d 09 54 45 48 61 6e 64 |vsize;.{|..TEHand|
|000007e0| 6c 65 20 74 65 78 74 68 | 61 6e 64 3b 0d 20 20 20 |le texth|and;. |
|000007f0| 20 46 6f 6e 74 49 6e 66 | 6f 20 20 66 69 6e 66 6f | FontInf|o finfo|
|00000800| 3b 0d 09 54 45 52 65 63 | 20 2a 20 74 65 78 74 70 |;..TERec| * textp|
|00000810| 74 72 3b 0d 09 47 72 61 | 66 50 74 72 20 6f 70 6f |tr;..Gra|fPtr opo|
|00000820| 72 74 3b 0d 09 52 65 63 | 74 20 6e 76 69 65 77 72 |rt;..Rec|t nviewr|
|00000830| 65 63 74 3b 0d 09 52 65 | 63 74 20 73 42 61 72 52 |ect;..Re|ct sBarR|
|00000840| 65 63 74 3b 0d 0d 09 47 | 65 74 50 6f 72 74 28 26 |ect;...G|etPort(&|
|00000850| 6f 70 6f 72 74 29 3b 0d | 09 53 65 74 50 6f 72 74 |oport);.|.SetPort|
|00000860| 28 65 6d 64 70 2d 3e 74 | 65 78 74 77 69 6e 64 6f |(emdp->t|extwindo|
|00000870| 77 29 3b 0d 0d 09 48 4c | 6f 63 6b 28 65 6d 64 70 |w);...HL|ock(emdp|
|00000880| 2d 3e 74 65 78 74 68 61 | 6e 64 29 3b 0d 09 74 65 |->textha|nd);..te|
|00000890| 78 74 68 61 6e 64 20 3d | 20 65 6d 64 70 2d 3e 74 |xthand =| emdp->t|
|000008a0| 65 78 74 68 61 6e 64 3b | 0d 09 74 65 78 74 70 74 |exthand;|..textpt|
|000008b0| 72 20 3d 20 2a 74 65 78 | 74 68 61 6e 64 3b 0d 0d |r = *tex|thand;..|
|000008c0| 09 54 65 78 74 46 6f 6e | 74 28 65 6d 64 70 2d 3e |.TextFon|t(emdp->|
|000008d0| 6e 6f 72 6d 66 6f 6e 74 | 29 3b 0d 09 54 65 78 74 |normfont|);..Text|
|000008e0| 53 69 7a 65 28 65 6d 64 | 70 2d 3e 66 6f 6e 74 73 |Size(emd|p->fonts|
|000008f0| 69 7a 65 29 3b 0d 09 0d | 09 47 65 74 46 6f 6e 74 |ize);...|.GetFont|
|00000900| 49 6e 66 6f 28 26 66 69 | 6e 66 6f 29 3b 0d 09 74 |Info(&fi|nfo);..t|
|00000910| 65 78 74 70 74 72 2d 3e | 66 6f 6e 74 41 73 63 65 |extptr->|fontAsce|
|00000920| 6e 74 20 3d 20 66 69 6e | 66 6f 2e 61 73 63 65 6e |nt = fin|fo.ascen|
|00000930| 74 20 2b 20 66 69 6e 66 | 6f 2e 6c 65 61 64 69 6e |t + finf|o.leadin|
|00000940| 67 3b 0d 09 74 65 78 74 | 70 74 72 2d 3e 6c 69 6e |g;..text|ptr->lin|
|00000950| 65 48 65 69 67 68 74 20 | 3d 20 74 65 78 74 70 74 |eHeight |= textpt|
|00000960| 72 2d 3e 66 6f 6e 74 41 | 73 63 65 6e 74 20 2b 20 |r->fontA|scent + |
|00000970| 66 69 6e 66 6f 2e 64 65 | 73 63 65 6e 74 3b 20 0d |finfo.de|scent; .|
|00000980| 0d 09 45 72 61 73 65 52 | 65 63 74 28 26 65 6d 64 |..EraseR|ect(&emd|
|00000990| 70 2d 3e 74 65 78 74 77 | 69 6e 64 6f 77 2d 3e 70 |p->textw|indow->p|
|000009a0| 6f 72 74 52 65 63 74 29 | 3b 0d 0d 23 69 66 6e 64 |ortRect)|;..#ifnd|
|000009b0| 65 66 20 53 49 5a 45 54 | 45 58 54 57 49 4e 44 4f |ef SIZET|EXTWINDO|
|000009c0| 57 0d 09 2f 2a 20 6e 6f | 77 20 77 65 20 6a 75 73 |W../* no|w we jus|
|000009d0| 74 20 75 73 65 20 74 68 | 65 20 67 69 76 65 6e 20 |t use th|e given |
|000009e0| 73 69 7a 65 20 2a 2f 0d | 09 68 73 69 7a 65 20 2b |size */.|.hsize +|
|000009f0| 3d 20 53 42 41 52 57 49 | 44 54 48 20 2b 20 32 20 |= SBARWI|DTH + 2 |
|00000a00| 2a 20 54 45 58 54 49 4e | 53 45 54 3b 09 09 09 2f |* TEXTIN|SET;.../|
|00000a10| 2a 20 74 65 78 74 77 69 | 6e 64 6f 77 20 69 73 20 |* textwi|ndow is |
|00000a20| 61 20 62 69 74 20 6c 61 | 72 67 65 72 2e 2e 2e 20 |a bit la|rger... |
|00000a30| 2a 2f 0d 09 76 73 69 7a | 65 20 3d 20 28 74 65 78 |*/..vsiz|e = (tex|
|00000a40| 74 70 74 72 2d 3e 6c 69 | 6e 65 48 65 69 67 68 74 |tptr->li|neHeight|
|00000a50| 20 2a 20 65 6d 64 70 2d | 3e 6c 69 6e 65 63 6f 75 | * emdp-|>linecou|
|00000a60| 6e 74 29 20 2b 20 28 32 | 20 2a 20 54 45 58 54 49 |nt) + (2| * TEXTI|
|00000a70| 4e 53 45 54 29 3b 09 0d | 09 09 6d 61 6b 65 20 73 |NSET);..|..make s|
|00000a80| 61 6d 65 20 68 65 69 67 | 68 74 20 61 73 20 65 6d |ame heig|ht as em|
|00000a90| 75 6c 61 74 6f 72 20 2a | 2f 0d 09 09 2f 2a 20 77 |ulator *|/.../* w|
|00000aa0| 61 73 20 65 6d 64 70 2d | 3e 74 65 78 74 77 69 6e |as emdp-|>textwin|
|00000ab0| 64 6f 77 2d 3e 70 6f 72 | 74 52 65 63 74 2e 62 6f |dow->por|tRect.bo|
|00000ac0| 74 74 6f 6d 20 2d 20 65 | 6d 64 70 2d 3e 74 65 78 |ttom - e|mdp->tex|
|00000ad0| 74 77 69 6e 64 6f 77 2d | 3e 70 6f 72 74 52 65 63 |twindow-|>portRec|
|00000ae0| 74 2e 74 6f 70 2c 20 2a | 2f 0d 23 65 6e 64 69 66 |t.top, *|/.#endif|
|00000af0| 0d 09 53 69 7a 65 57 69 | 6e 64 6f 77 28 65 6d 64 |..SizeWi|ndow(emd|
|00000b00| 70 2d 3e 74 65 78 74 77 | 69 6e 64 6f 77 2c 20 68 |p->textw|indow, h|
|00000b10| 73 69 7a 65 2c 20 76 73 | 69 7a 65 2c 20 28 42 6f |size, vs|ize, (Bo|
|00000b20| 6f 6c 65 61 6e 29 20 46 | 41 4c 53 45 29 3b 0d 0d |olean) F|ALSE);..|
|00000b30| 09 49 6e 76 61 6c 52 65 | 63 74 28 26 65 6d 64 70 |.InvalRe|ct(&emdp|
|00000b40| 2d 3e 74 65 78 74 77 69 | 6e 64 6f 77 2d 3e 70 6f |->textwi|ndow->po|
|00000b50| 72 74 52 65 63 74 29 3b | 0d 09 09 2f 2a 20 69 6e |rtRect);|.../* in|
|00000b60| 76 61 6c 69 64 61 74 65 | 20 74 68 65 20 77 68 6f |validate| the who|
|00000b70| 6c 65 20 77 69 6e 64 6f | 77 20 2a 2f 0d 09 09 0d |le windo|w */....|
|00000b80| 09 74 65 78 74 70 74 72 | 2d 3e 74 78 53 69 7a 65 |.textptr|->txSize|
|00000b90| 20 3d 20 28 73 68 6f 72 | 74 29 20 65 6d 64 70 2d | = (shor|t) emdp-|
|00000ba0| 3e 66 6f 6e 74 73 69 7a | 65 3b 0d 0d 09 2f 2a 20 |>fontsiz|e;.../* |
|00000bb0| 72 65 73 65 74 20 74 65 | 78 74 20 74 6f 20 74 6f |reset te|xt to to|
|00000bc0| 70 20 2a 2f 0d 09 65 6d | 64 70 2d 3e 46 69 72 73 |p */..em|dp->Firs|
|00000bd0| 74 4c 69 6e 65 20 3d 20 | 30 3b 0d 0d 09 2f 2a 20 |tLine = |0;.../* |
|00000be0| 6f 6e 6c 79 20 73 65 74 | 20 63 65 72 74 61 69 6e |only set| certain|
|00000bf0| 20 54 45 20 76 61 72 73 | 20 6f 72 20 54 45 20 67 | TE vars| or TE g|
|00000c00| 65 74 73 20 63 6f 6e 66 | 75 73 65 64 20 61 62 6f |ets conf|used abo|
|00000c10| 75 74 20 77 68 65 72 65 | 20 74 68 65 20 74 65 78 |ut where| the tex|
|00000c20| 74 20 69 73 20 2a 2f 0d | 23 69 66 64 65 66 20 4f |t is */.|#ifdef O|
|00000c30| 4c 44 44 45 53 54 52 45 | 43 54 0d 09 74 65 78 74 |LDDESTRE|CT..text|
|00000c40| 70 74 72 2d 3e 64 65 73 | 74 52 65 63 74 2e 74 6f |ptr->des|tRect.to|
|00000c50| 70 20 3d 20 54 45 58 54 | 49 4e 53 45 54 3b 0d 09 |p = TEXT|INSET;..|
|00000c60| 74 65 78 74 70 74 72 2d | 3e 64 65 73 74 52 65 63 |textptr-|>destRec|
|00000c70| 74 2e 72 69 67 68 74 20 | 3d 20 74 68 65 50 6f 72 |t.right |= thePor|
|00000c80| 74 2d 3e 70 6f 72 74 52 | 65 63 74 2e 72 69 67 68 |t->portR|ect.righ|
|00000c90| 74 20 2d 20 32 30 3b 0d | 0d 09 2f 2a 20 72 65 73 |t - 20;.|../* res|
|00000ca0| 65 74 20 74 68 65 20 23 | 20 6f 66 20 6c 69 6e 65 |et the #| of line|
|00000cb0| 73 20 61 6e 64 20 74 68 | 65 20 76 69 65 77 20 72 |s and th|e view r|
|00000cc0| 65 63 74 20 2a 2f 0d 09 | 65 6d 64 70 2d 3e 74 65 |ect */..|emdp->te|
|00000cd0| 78 74 6c 69 6e 65 73 20 | 3d 20 28 28 74 68 65 50 |xtlines |= ((theP|
|00000ce0| 6f 72 74 2d 3e 70 6f 72 | 74 52 65 63 74 2e 62 6f |ort->por|tRect.bo|
|00000cf0| 74 74 6f 6d 20 2d 20 54 | 45 58 54 49 4e 53 45 54 |ttom - T|EXTINSET|
|00000d00| 29 20 2f 20 74 65 78 74 | 70 74 72 2d 3e 6c 69 6e |) / text|ptr->lin|
|00000d10| 65 48 65 69 67 68 74 20 | 29 3b 0d 0d 09 74 65 78 |eHeight |);...tex|
|00000d20| 74 70 74 72 2d 3e 76 69 | 65 77 52 65 63 74 2e 62 |tptr->vi|ewRect.b|
|00000d30| 6f 74 74 6f 6d 20 3d 20 | 54 45 58 54 49 4e 53 45 |ottom = |TEXTINSE|
|00000d40| 54 20 2b 20 65 6d 64 70 | 2d 3e 74 65 78 74 6c 69 |T + emdp|->textli|
|00000d50| 6e 65 73 20 2a 20 74 65 | 78 74 70 74 72 2d 3e 6c |nes * te|xtptr->l|
|00000d60| 69 6e 65 48 65 69 67 68 | 74 3b 0d 09 09 2f 2a 20 |ineHeigh|t;.../* |
|00000d70| 72 6f 75 6e 64 20 68 65 | 69 67 68 74 20 6f 66 20 |round he|ight of |
|00000d80| 76 69 65 77 20 72 65 63 | 74 20 74 6f 20 65 76 65 |view rec|t to eve|
|00000d90| 6e 20 62 69 74 20 6d 75 | 6c 74 69 70 6c 65 20 6f |n bit mu|ltiple o|
|00000da0| 66 20 66 6f 6e 74 20 73 | 69 7a 65 20 2a 2f 0d 09 |f font s|ize */..|
|00000db0| 74 65 78 74 70 74 72 2d | 3e 76 69 65 77 52 65 63 |textptr-|>viewRec|
|00000dc0| 74 2e 72 69 67 68 74 20 | 3d 20 74 68 65 50 6f 72 |t.right |= thePor|
|00000dd0| 74 2d 3e 70 6f 72 74 52 | 65 63 74 2e 72 69 67 68 |t->portR|ect.righ|
|00000de0| 74 20 2d 20 32 30 3b 0d | 0d 23 65 6c 73 65 0d 09 |t - 20;.|.#else..|
|00000df0| 0d 09 74 65 78 74 70 74 | 72 2d 3e 64 65 73 74 52 |..textpt|r->destR|
|00000e00| 65 63 74 2e 74 6f 70 20 | 3d 20 54 45 58 54 49 4e |ect.top |= TEXTIN|
|00000e10| 53 45 54 3b 0d 09 74 65 | 78 74 70 74 72 2d 3e 64 |SET;..te|xtptr->d|
|00000e20| 65 73 74 52 65 63 74 2e | 72 69 67 68 74 20 3d 20 |estRect.|right = |
|00000e30| 74 68 65 50 6f 72 74 2d | 3e 70 6f 72 74 52 65 63 |thePort-|>portRec|
|00000e40| 74 2e 72 69 67 68 74 20 | 2d 20 32 32 3b 0d 0d 09 |t.right |- 22;...|
|00000e50| 73 65 74 74 65 76 69 65 | 77 28 26 6e 76 69 65 77 |settevie|w(&nview|
|00000e60| 72 65 63 74 29 3b 0d 09 | 74 65 78 74 70 74 72 2d |rect);..|textptr-|
|00000e70| 3e 76 69 65 77 52 65 63 | 74 2e 62 6f 74 74 6f 6d |>viewRec|t.bottom|
|00000e80| 20 3d 20 6e 76 69 65 77 | 72 65 63 74 2e 62 6f 74 | = nview|rect.bot|
|00000e90| 74 6f 6d 3b 0d 09 74 65 | 78 74 70 74 72 2d 3e 76 |tom;..te|xtptr->v|
|00000ea0| 69 65 77 52 65 63 74 2e | 72 69 67 68 74 20 3d 20 |iewRect.|right = |
|00000eb0| 6e 76 69 65 77 72 65 63 | 74 2e 72 69 67 68 74 3b |nviewrec|t.right;|
|00000ec0| 0d 23 65 6e 64 69 66 0d | 0d 09 48 69 64 65 43 6f |.#endif.|..HideCo|
|00000ed0| 6e 74 72 6f 6c 28 65 6d | 64 70 2d 3e 76 42 61 72 |ntrol(em|dp->vBar|
|00000ee0| 48 61 6e 64 29 3b 0d 09 | 73 42 61 72 52 65 63 74 |Hand);..|sBarRect|
|00000ef0| 20 3d 20 65 6d 64 70 2d | 3e 74 65 78 74 77 69 6e | = emdp-|>textwin|
|00000f00| 64 6f 77 2d 3e 70 6f 72 | 74 52 65 63 74 3b 0d 09 |dow->por|tRect;..|
|00000f10| 49 6e 73 65 74 52 65 63 | 74 28 26 73 42 61 72 52 |InsetRec|t(&sBarR|
|00000f20| 65 63 74 2c 20 2d 31 2c | 20 2d 31 20 29 3b 0d 09 |ect, -1,| -1 );..|
|00000f30| 73 42 61 72 52 65 63 74 | 2e 6c 65 66 74 20 3d 20 |sBarRect|.left = |
|00000f40| 73 42 61 72 52 65 63 74 | 2e 72 69 67 68 74 20 2d |sBarRect|.right -|
|00000f50| 20 53 42 41 52 57 49 44 | 54 48 3b 0d 09 73 42 61 | SBARWID|TH;..sBa|
|00000f60| 72 52 65 63 74 2e 62 6f | 74 74 6f 6d 20 2d 3d 20 |rRect.bo|ttom -= |
|00000f70| 28 53 42 41 52 57 49 44 | 54 48 20 2d 20 31 29 3b |(SBARWID|TH - 1);|
|00000f80| 09 09 09 09 09 2f 2a 20 | 73 70 61 63 65 20 66 6f |...../* |space fo|
|00000f90| 72 20 67 72 6f 77 20 7a | 6f 6e 65 20 2a 2f 0d 09 |r grow z|one */..|
|00000fa0| 4d 6f 76 65 43 6f 6e 74 | 72 6f 6c 28 65 6d 64 70 |MoveCont|rol(emdp|
|00000fb0| 2d 3e 76 42 61 72 48 61 | 6e 64 2c 20 73 42 61 72 |->vBarHa|nd, sBar|
|00000fc0| 52 65 63 74 2e 6c 65 66 | 74 2c 20 73 42 61 72 52 |Rect.lef|t, sBarR|
|00000fd0| 65 63 74 2e 74 6f 70 29 | 3b 20 0d 0d 09 53 69 7a |ect.top)|; ...Siz|
|00000fe0| 65 43 6f 6e 74 72 6f 6c | 28 65 6d 64 70 2d 3e 76 |eControl|(emdp->v|
|00000ff0| 42 61 72 48 61 6e 64 2c | 20 73 42 61 72 52 65 63 |BarHand,| sBarRec|
|00001000| 74 2e 72 69 67 68 74 20 | 2d 20 73 42 61 72 52 65 |t.right |- sBarRe|
|00001010| 63 74 2e 6c 65 66 74 2c | 20 0d 09 09 73 42 61 72 |ct.left,| ...sBar|
|00001020| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 20 2d 20 73 42 |Rect.bot|tom - sB|
|00001030| 61 72 52 65 63 74 2e 74 | 6f 70 29 3b 0d 09 09 0d |arRect.t|op);....|
|00001040| 09 48 55 6e 6c 6f 63 6b | 28 65 6d 64 70 2d 3e 74 |.HUnlock|(emdp->t|
|00001050| 65 78 74 68 61 6e 64 29 | 3b 0d 09 0d 23 69 66 64 |exthand)|;...#ifd|
|00001060| 65 66 20 53 49 5a 45 54 | 45 58 54 57 49 4e 44 4f |ef SIZET|EXTWINDO|
|00001070| 57 0d 09 54 45 43 61 6c | 54 65 78 74 28 65 6d 64 |W..TECal|Text(emd|
|00001080| 70 2d 3e 74 65 78 74 68 | 61 6e 64 29 3b 0d 09 49 |p->texth|and);..I|
|00001090| 6e 76 61 6c 52 65 63 74 | 28 26 28 2a 65 6d 64 70 |nvalRect|(&(*emdp|
|000010a0| 2d 3e 74 65 78 74 68 61 | 6e 64 29 2d 3e 76 69 65 |->textha|nd)->vie|
|000010b0| 77 52 65 63 74 29 3b 0d | 23 65 6e 64 69 66 0d 0d |wRect);.|#endif..|
|000010c0| 09 74 65 78 74 63 74 6c | 75 70 64 28 65 6d 64 70 |.textctl|upd(emdp|
|000010d0| 29 3b 0d 09 53 65 6c 56 | 69 65 77 28 65 6d 64 70 |);..SelV|iew(emdp|
|000010e0| 29 3b 0d 09 53 68 6f 77 | 43 6f 6e 74 72 6f 6c 28 |);..Show|Control(|
|000010f0| 65 6d 64 70 2d 3e 76 42 | 61 72 48 61 6e 64 29 3b |emdp->vB|arHand);|
|00001100| 0d 0d 09 53 65 74 50 6f | 72 74 28 6f 70 6f 72 74 |...SetPo|rt(oport|
|00001110| 29 3b 0d 7d 0d 0d 0d 0d | 74 65 78 74 77 6d 6f 76 |);.}....|textwmov|
|00001120| 65 28 74 77 70 2c 20 68 | 73 68 69 66 74 2c 20 76 |e(twp, h|shift, v|
|00001130| 73 68 69 66 74 29 0d 73 | 74 72 75 63 74 20 77 69 |shift).s|truct wi|
|00001140| 6e 64 73 20 2a 20 74 77 | 70 3b 0d 73 68 6f 72 74 |nds * tw|p;.short|
|00001150| 20 68 73 68 69 66 74 3b | 0d 73 68 6f 72 74 20 76 | hshift;|.short v|
|00001160| 73 68 69 66 74 3b 0d 7b | 0d 09 50 6f 69 6e 74 20 |shift;.{|..Point |
|00001170| 74 65 78 74 70 6f 69 6e | 74 3b 0d 09 47 72 61 66 |textpoin|t;..Graf|
|00001180| 50 74 72 20 6f 70 6f 72 | 74 3b 0d 09 0d 09 47 65 |Ptr opor|t;....Ge|
|00001190| 74 50 6f 72 74 28 26 6f | 70 6f 72 74 29 3b 0d 09 |tPort(&o|port);..|
|000011a0| 53 65 74 50 6f 72 74 28 | 74 77 70 2d 3e 74 65 78 |SetPort(|twp->tex|
|000011b0| 74 77 69 6e 64 6f 77 29 | 3b 0d 09 0d 09 74 65 78 |twindow)|;....tex|
|000011c0| 74 70 6f 69 6e 74 2e 76 | 20 3d 20 74 77 70 2d 3e |tpoint.v| = twp->|
|000011d0| 74 65 78 74 77 69 6e 64 | 6f 77 2d 3e 70 6f 72 74 |textwind|ow->port|
|000011e0| 52 65 63 74 2e 74 6f 70 | 3b 0d 09 74 65 78 74 70 |Rect.top|;..textp|
|000011f0| 6f 69 6e 74 2e 68 20 3d | 20 74 77 70 2d 3e 74 65 |oint.h =| twp->te|
|00001200| 78 74 77 69 6e 64 6f 77 | 2d 3e 70 6f 72 74 52 65 |xtwindow|->portRe|
|00001210| 63 74 2e 6c 65 66 74 3b | 0d 09 4c 6f 63 61 6c 54 |ct.left;|..LocalT|
|00001220| 6f 47 6c 6f 62 61 6c 28 | 26 74 65 78 74 70 6f 69 |oGlobal(|&textpoi|
|00001230| 6e 74 29 3b 0d 09 0d 09 | 4d 6f 76 65 57 69 6e 64 |nt);....|MoveWind|
|00001240| 6f 77 28 74 77 70 2d 3e | 74 65 78 74 77 69 6e 64 |ow(twp->|textwind|
|00001250| 6f 77 2c 20 74 65 78 74 | 70 6f 69 6e 74 2e 68 20 |ow, text|point.h |
|00001260| 2b 20 68 73 68 69 66 74 | 2c 20 74 65 78 74 70 6f |+ hshift|, textpo|
|00001270| 69 6e 74 2e 76 20 2b 20 | 76 73 68 69 66 74 2c 20 |int.v + |vshift, |
|00001280| 28 42 6f 6f 6c 65 61 6e | 29 20 46 41 4c 53 45 29 |(Boolean|) FALSE)|
|00001290| 3b 0d 09 53 65 74 50 6f | 72 74 28 6f 70 6f 72 74 |;..SetPo|rt(oport|
|000012a0| 29 3b 0d 7d 0d 0d 0d 2f | 2a 20 61 70 70 65 6e 64 |);.}.../|* append|
|000012b0| 20 74 65 78 74 20 74 6f | 20 74 68 65 20 65 6d 64 | text to| the emd|
|000012c0| 70 20 74 65 78 74 77 69 | 6e 64 6f 77 20 77 69 74 |p textwi|ndow wit|
|000012d0| 68 6f 75 74 20 64 69 73 | 74 75 72 62 69 6e 67 20 |hout dis|turbing |
|000012e0| 73 65 6c 65 63 74 69 6f | 6e 20 2a 2f 0d 0d 74 65 |selectio|n */..te|
|000012f0| 78 74 77 61 70 70 65 6e | 64 28 74 65 78 74 70 2c |xtwappen|d(textp,|
|00001300| 20 6c 65 6e 67 74 68 29 | 0d 75 6e 73 69 67 6e 65 | length)|.unsigne|
|00001310| 64 20 63 68 61 72 20 2a | 20 74 65 78 74 70 3b 0d |d char *| textp;.|
|00001320| 6c 6f 6e 67 20 6c 65 6e | 67 74 68 3b 0d 7b 0d 09 |long len|gth;.{..|
|00001330| 6c 6f 6e 67 20 73 65 6c | 73 74 61 72 74 3b 0d 09 |long sel|start;..|
|00001340| 6c 6f 6e 67 20 73 65 6c | 65 6e 64 3b 0d 09 6c 6f |long sel|end;..lo|
|00001350| 6e 67 20 73 74 61 72 74 | 6c 65 6e 67 74 68 3b 0d |ng start|length;.|
|00001360| 09 0d 09 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |...regis|ter unsi|
|00001370| 67 6e 65 64 20 63 68 61 | 72 20 2a 20 63 68 61 72 |gned cha|r * char|
|00001380| 70 3b 0d 09 72 65 67 69 | 73 74 65 72 20 75 6e 73 |p;..regi|ster uns|
|00001390| 69 67 6e 65 64 20 63 68 | 61 72 20 2a 20 73 74 61 |igned ch|ar * sta|
|000013a0| 6b 65 70 3b 0d 09 72 65 | 67 69 73 74 65 72 20 6c |kep;..re|gister l|
|000013b0| 6f 6e 67 20 63 68 6c 65 | 6e 3b 0d 09 0d 09 69 66 |ong chle|n;....if|
|000013c0| 20 28 21 20 6d 65 6d 74 | 65 73 74 28 6c 65 6e 67 | (! memt|est(leng|
|000013d0| 74 68 2c 20 22 74 6f 20 | 61 70 70 65 6e 64 20 74 |th, "to |append t|
|000013e0| 65 78 74 22 29 29 0d 09 | 09 2f 2a 20 6f 75 74 20 |ext"))..|./* out |
|000013f0| 6f 66 20 6d 65 6d 6f 72 | 79 20 2a 2f 0d 09 09 72 |of memor|y */...r|
|00001400| 65 74 75 72 6e 28 2d 31 | 29 3b 0d 09 0d 09 73 65 |eturn(-1|);....se|
|00001410| 6c 73 74 61 72 74 20 3d | 20 28 2a 65 6d 64 70 2d |lstart =| (*emdp-|
|00001420| 3e 74 65 78 74 68 61 6e | 64 29 2d 3e 73 65 6c 53 |>texthan|d)->selS|
|00001430| 74 61 72 74 3b 0d 09 73 | 65 6c 65 6e 64 20 3d 20 |tart;..s|elend = |
|00001440| 28 2a 65 6d 64 70 2d 3e | 74 65 78 74 68 61 6e 64 |(*emdp->|texthand|
|00001450| 29 2d 3e 73 65 6c 45 6e | 64 3b 0d 09 73 74 61 72 |)->selEn|d;..star|
|00001460| 74 6c 65 6e 67 74 68 20 | 3d 20 28 2a 65 6d 64 70 |tlength |= (*emdp|
|00001470| 2d 3e 74 65 78 74 68 61 | 6e 64 29 2d 3e 74 65 4c |->textha|nd)->teL|
|00001480| 65 6e 67 74 68 3b 0d 09 | 0d 09 69 66 20 28 28 75 |ength;..|..if ((u|
|00001490| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 29 20 28 73 |nsigned |long) (s|
|000014a0| 74 61 72 74 6c 65 6e 67 | 74 68 20 2b 20 6c 65 6e |tartleng|th + len|
|000014b0| 67 74 68 29 20 3e 20 33 | 32 35 30 30 4c 29 20 7b |gth) > 3|2500L) {|
|000014c0| 0d 09 09 73 68 6f 72 74 | 20 2a 20 6c 69 6e 65 73 |...short| * lines|
|000014d0| 74 61 72 74 3b 0d 09 09 | 73 68 6f 72 74 20 6c 69 |tart;...|short li|
|000014e0| 6e 65 63 6f 75 6e 74 3b | 0d 09 09 73 68 6f 72 74 |necount;|...short|
|000014f0| 20 6e 6c 69 6e 65 73 3b | 0d 09 09 0d 09 09 6e 6c | nlines;|......nl|
|00001500| 69 6e 65 73 20 3d 20 28 | 2a 65 6d 64 70 2d 3e 74 |ines = (|*emdp->t|
|00001510| 65 78 74 68 61 6e 64 29 | 2d 3e 6e 4c 69 6e 65 73 |exthand)|->nLines|
|00001520| 3b 0d 09 09 6c 69 6e 65 | 73 74 61 72 74 20 3d 20 |;...line|start = |
|00001530| 26 28 2a 65 6d 64 70 2d | 3e 74 65 78 74 68 61 6e |&(*emdp-|>texthan|
|00001540| 64 29 2d 3e 6c 69 6e 65 | 53 74 61 72 74 73 5b 30 |d)->line|Starts[0|
|00001550| 5d 3b 0d 09 09 6c 69 6e | 65 63 6f 75 6e 74 20 3d |];...lin|ecount =|
|00001560| 20 30 3b 0d 09 09 0d 09 | 09 77 68 69 6c 65 20 28 | 0;.....|.while (|
|00001570| 2a 6c 69 6e 65 73 74 61 | 72 74 20 3c 20 6c 65 6e |*linesta|rt < len|
|00001580| 67 74 68 29 20 7b 0d 09 | 09 09 2f 2a 20 64 65 6c |gth) {..|../* del|
|00001590| 65 74 65 20 61 20 70 61 | 67 65 20 61 74 20 61 20 |ete a pa|ge at a |
|000015a0| 74 69 6d 65 20 2a 2f 0d | 09 09 09 6c 69 6e 65 63 |time */.|...linec|
|000015b0| 6f 75 6e 74 20 2b 3d 20 | 65 6d 64 70 2d 3e 6c 69 |ount += |emdp->li|
|000015c0| 6e 65 63 6f 75 6e 74 3b | 0d 09 09 09 69 66 20 28 |necount;|....if (|
|000015d0| 6c 69 6e 65 63 6f 75 6e | 74 20 3e 3d 20 6e 6c 69 |linecoun|t >= nli|
|000015e0| 6e 65 73 29 20 7b 0d 09 | 09 09 09 65 72 72 6f 72 |nes) {..|...error|
|000015f0| 28 22 43 61 6e 27 74 20 | 61 70 70 65 6e 64 20 74 |("Can't |append t|
|00001600| 65 78 74 20 74 6f 20 45 | 64 69 74 20 77 69 6e 64 |ext to E|dit wind|
|00001610| 6f 77 22 29 3b 0d 09 09 | 09 09 72 65 74 75 72 6e |ow");...|..return|
|00001620| 3b 0d 09 09 09 7d 0d 09 | 09 09 6c 69 6e 65 73 74 |;....}..|..linest|
|00001630| 61 72 74 20 2b 3d 20 65 | 6d 64 70 2d 3e 6c 69 6e |art += e|mdp->lin|
|00001640| 65 63 6f 75 6e 74 3b 0d | 09 09 09 0d 09 09 7d 0d |ecount;.|......}.|
|00001650| 09 09 54 45 53 65 74 53 | 65 6c 65 63 74 28 28 6c |..TESetS|elect((l|
|00001660| 6f 6e 67 29 20 30 2c 20 | 28 6c 6f 6e 67 29 20 2a |ong) 0, |(long) *|
|00001670| 6c 69 6e 65 73 74 61 72 | 74 2c 20 65 6d 64 70 2d |linestar|t, emdp-|
|00001680| 3e 74 65 78 74 68 61 6e | 64 29 3b 0d 09 09 54 45 |>texthan|d);...TE|
|00001690| 44 65 6c 65 74 65 28 65 | 6d 64 70 2d 3e 74 65 78 |Delete(e|mdp->tex|
|000016a0| 74 68 61 6e 64 29 3b 0d | 09 7d 0d 09 0d 09 74 65 |thand);.|.}....te|
|000016b0| 73 65 74 73 65 6c 28 20 | 28 6c 6f 6e 67 29 20 28 |setsel( |(long) (|
|000016c0| 2a 65 6d 64 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 |*emdp->t|exthand)|
|000016d0| 2d 3e 74 65 4c 65 6e 67 | 74 68 2c 20 28 6c 6f 6e |->teLeng|th, (lon|
|000016e0| 67 29 20 28 2a 65 6d 64 | 70 2d 3e 74 65 78 74 68 |g) (*emd|p->texth|
|000016f0| 61 6e 64 29 2d 3e 74 65 | 4c 65 6e 67 74 68 2c 20 |and)->te|Length, |
|00001700| 65 6d 64 70 2d 3e 74 65 | 78 74 68 61 6e 64 29 3b |emdp->te|xthand);|
|00001710| 0d 23 69 66 64 65 66 20 | 4e 4f 44 49 41 43 52 49 |.#ifdef |NODIACRI|
|00001720| 54 49 43 53 0d 09 54 45 | 49 6e 73 65 72 74 28 74 |TICS..TE|Insert(t|
|00001730| 65 78 74 70 2c 20 28 6c | 6f 6e 67 29 20 6c 65 6e |extp, (l|ong) len|
|00001740| 67 74 68 2c 20 65 6d 64 | 70 2d 3e 74 65 78 74 68 |gth, emd|p->texth|
|00001750| 61 6e 64 29 3b 0d 23 65 | 6c 73 65 0d 09 2f 2a 20 |and);.#e|lse../* |
|00001760| 66 6f 72 20 64 69 61 63 | 72 69 74 69 63 73 20 74 |for diac|ritics t|
|00001770| 6f 20 62 65 20 72 65 70 | 72 65 73 65 6e 74 65 64 |o be rep|resented|
|00001780| 20 70 72 6f 70 65 72 6c | 79 2c 20 54 45 4b 65 79 | properl|y, TEKey|
|00001790| 28 29 20 6d 75 73 74 20 | 62 65 20 63 61 6c 6c 65 |() must |be calle|
|000017a0| 64 20 2a 2f 0d 09 73 74 | 61 6b 65 70 20 3d 20 63 |d */..st|akep = c|
|000017b0| 68 61 72 70 20 3d 20 74 | 65 78 74 70 3b 0d 09 0d |harp = t|extp;...|
|000017c0| 09 66 6f 72 20 28 63 68 | 6c 65 6e 20 3d 20 30 3b |.for (ch|len = 0;|
|000017d0| 20 6c 65 6e 67 74 68 2d | 2d 3b 20 63 68 61 72 70 | length-|-; charp|
|000017e0| 2b 2b 29 20 7b 0d 09 09 | 69 66 20 28 69 73 64 69 |++) {...|if (isdi|
|000017f0| 61 63 72 69 74 69 63 5b | 2a 63 68 61 72 70 5d 29 |acritic[|*charp])|
|00001800| 20 7b 0d 09 09 09 2f 2a | 20 54 45 4b 65 79 20 68 | {..../*| TEKey h|
|00001810| 61 73 20 74 6f 20 62 65 | 20 75 73 65 64 20 74 6f |as to be| used to|
|00001820| 20 69 6e 70 75 74 20 64 | 69 61 63 72 69 74 69 63 | input d|iacritic|
|00001830| 73 20 70 72 6f 70 65 72 | 6c 79 3b 0d 09 09 09 09 |s proper|ly;.....|
|00001840| 6d 75 73 74 20 62 65 20 | 75 73 69 6e 67 20 64 65 |must be |using de|
|00001850| 66 61 75 6c 74 20 66 6f | 6e 74 20 2a 2f 0d 09 09 |fault fo|nt */...|
|00001860| 09 69 66 20 28 63 68 6c | 65 6e 29 20 7b 0d 09 09 |.if (chl|en) {...|
|00001870| 09 09 54 45 49 6e 73 65 | 72 74 28 73 74 61 6b 65 |..TEInse|rt(stake|
|00001880| 70 2c 20 28 6c 6f 6e 67 | 29 20 63 68 6c 65 6e 2c |p, (long|) chlen,|
|00001890| 20 65 6d 64 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 | emdp->t|exthand)|
|000018a0| 3b 0d 09 09 09 09 63 68 | 6c 65 6e 20 3d 20 30 3b |;.....ch|len = 0;|
|000018b0| 0d 09 09 09 7d 0d 09 09 | 09 54 45 4b 65 79 28 2a |....}...|.TEKey(*|
|000018c0| 63 68 61 72 70 2c 20 65 | 6d 64 70 2d 3e 74 65 78 |charp, e|mdp->tex|
|000018d0| 74 68 61 6e 64 29 3b 0d | 09 09 09 73 74 61 6b 65 |thand);.|...stake|
|000018e0| 70 20 3d 20 63 68 61 72 | 70 20 2b 20 31 3b 0d 09 |p = char|p + 1;..|
|000018f0| 09 7d 0d 09 09 65 6c 73 | 65 0d 09 09 09 63 68 6c |.}...els|e....chl|
|00001900| 65 6e 2b 2b 3b 0d 09 7d | 0d 09 69 66 20 28 63 68 |en++;..}|..if (ch|
|00001910| 6c 65 6e 29 20 7b 0d 09 | 09 2f 2a 20 74 68 65 72 |len) {..|./* ther|
|00001920| 65 20 73 74 69 6c 6c 20 | 72 65 6d 61 69 6e 20 73 |e still |remain s|
|00001930| 6f 6d 65 20 63 68 61 72 | 61 63 74 65 72 73 20 61 |ome char|acters a|
|00001940| 74 20 74 68 65 20 65 6e | 64 20 2a 2f 0d 09 09 54 |t the en|d */...T|
|00001950| 45 49 6e 73 65 72 74 28 | 73 74 61 6b 65 70 2c 20 |EInsert(|stakep, |
|00001960| 28 6c 6f 6e 67 29 20 63 | 68 6c 65 6e 2c 20 65 6d |(long) c|hlen, em|
|00001970| 64 70 2d 3e 74 65 78 74 | 68 61 6e 64 29 3b 0d 09 |dp->text|hand);..|
|00001980| 7d 0d 23 65 6e 64 69 66 | 0d 09 2f 2a 20 72 65 73 |}.#endif|../* res|
|00001990| 65 74 20 74 68 65 20 73 | 65 6c 65 63 74 69 6f 6e |et the s|election|
|000019a0| 20 2a 2f 0d 09 69 66 20 | 28 73 65 6c 73 74 61 72 | */..if |(selstar|
|000019b0| 74 20 21 3d 20 73 74 61 | 72 74 6c 65 6e 67 74 68 |t != sta|rtlength|
|000019c0| 29 0d 09 09 2f 2a 20 6f | 6e 6c 79 20 72 65 73 65 |).../* o|nly rese|
|000019d0| 74 20 63 75 72 73 6f 72 | 20 69 66 20 69 74 20 77 |t cursor| if it w|
|000019e0| 61 73 20 6e 6f 74 20 61 | 74 20 74 68 65 20 65 6e |as not a|t the en|
|000019f0| 64 20 6f 66 20 74 68 65 | 20 74 65 78 74 20 2a 2f |d of the| text */|
|00001a00| 0d 09 09 74 65 73 65 74 | 73 65 6c 28 20 28 6c 6f |...teset|sel( (lo|
|00001a10| 6e 67 29 20 73 65 6c 73 | 74 61 72 74 2c 20 28 6c |ng) sels|tart, (l|
|00001a20| 6f 6e 67 29 20 73 65 6c | 65 6e 64 2c 20 65 6d 64 |ong) sel|end, emd|
|00001a30| 70 2d 3e 74 65 78 74 68 | 61 6e 64 29 3b 0d 09 74 |p->texth|and);..t|
|00001a40| 65 78 74 63 74 6c 75 70 | 64 28 65 6d 64 70 29 3b |extctlup|d(emdp);|
|00001a50| 0d 09 69 66 20 28 73 65 | 6c 73 74 61 72 74 20 3d |..if (se|lstart =|
|00001a60| 3d 20 73 74 61 72 74 6c | 65 6e 67 74 68 29 0d 09 |= startl|ength)..|
|00001a70| 09 2f 2a 20 73 63 72 6f | 6c 6c 20 61 75 74 6f 6d |./* scro|ll autom|
|00001a80| 61 74 69 63 61 6c 6c 79 | 20 69 66 20 74 68 65 20 |atically| if the |
|00001a90| 63 75 72 73 6f 72 20 77 | 61 73 20 61 74 20 74 68 |cursor w|as at th|
|00001aa0| 65 20 65 6e 64 20 6f 66 | 20 74 68 65 20 74 65 78 |e end of| the tex|
|00001ab0| 74 20 2a 2f 0d 09 09 53 | 65 6c 56 69 65 77 28 65 |t */...S|elView(e|
|00001ac0| 6d 64 70 29 3b 0d 7d 0d | 0d 0d 74 65 73 65 74 73 |mdp);.}.|..tesets|
|00001ad0| 65 6c 28 73 74 61 72 74 | 2c 20 65 6e 64 2c 20 74 |el(start|, end, t|
|00001ae0| 65 68 61 6e 64 29 0d 6c | 6f 6e 67 20 73 74 61 72 |ehand).l|ong star|
|00001af0| 74 3b 0d 6c 6f 6e 67 20 | 65 6e 64 3b 0d 54 45 48 |t;.long |end;.TEH|
|00001b00| 61 6e 64 6c 65 20 74 65 | 68 61 6e 64 3b 0d 7b 0d |andle te|hand;.{.|
|00001b10| 09 28 2a 74 65 68 61 6e | 64 29 2d 3e 63 6c 69 6b |.(*tehan|d)->clik|
|00001b20| 53 74 75 66 66 20 3d 20 | 32 35 35 3b 0d 09 09 2f |Stuff = |255;.../|
|00001b30| 2a 20 67 72 75 65 73 6f | 6d 65 20 54 45 20 62 6f |* grueso|me TE bo|
|00001b40| 74 63 68 20 72 65 71 75 | 69 72 65 73 20 6f 6e 65 |tch requ|ires one|
|00001b50| 20 74 6f 20 64 6f 20 74 | 68 69 73 20 74 6f 20 67 | to do t|his to g|
|00001b60| 65 74 20 63 75 72 73 6f | 72 20 61 74 20 62 65 67 |et curso|r at beg|
|00001b70| 69 6e 6e 69 6e 67 0d 09 | 09 09 6f 66 20 6c 69 6e |inning..|..of lin|
|00001b80| 65 20 0d 09 09 2a 2f 0d | 09 54 45 53 65 74 53 65 |e ...*/.|.TESetSe|
|00001b90| 6c 65 63 74 28 73 74 61 | 72 74 2c 20 65 6e 64 2c |lect(sta|rt, end,|
|00001ba0| 20 74 65 68 61 6e 64 29 | 3b 0d 7d 0d 0d 2f 2a 20 | tehand)|;.}../* |
|00001bb0| 68 65 72 65 20 66 6f 6c | 6c 6f 77 20 72 6f 75 74 |here fol|low rout|
|00001bc0| 69 6e 65 73 20 6c 69 66 | 74 65 64 20 66 72 6f 6d |ines lif|ted from|
|00001bd0| 20 44 6f 75 67 20 48 6f | 72 6e 69 67 27 73 20 4c | Doug Ho|rnig's L|
|00001be0| 6f 63 61 6c 45 64 69 74 | 2e 63 20 2a 2f 0d 0d 2f |ocalEdit|.c */../|
|00001bf0| 2a 20 20 43 6c 69 63 6b | 4c 6f 6f 70 20 69 73 20 |* Click|Loop is |
|00001c00| 63 61 6c 6c 65 64 20 72 | 65 70 65 61 74 65 64 6c |called r|epeatedl|
|00001c10| 79 20 77 68 69 6c 65 20 | 74 68 65 20 6d 6f 75 73 |y while |the mous|
|00001c20| 65 20 62 75 74 74 6f 6e | 20 69 73 20 64 6f 77 6e |e button| is down|
|00001c30| 20 64 75 72 69 6e 67 20 | 65 64 69 74 69 6e 67 2e | during |editing.|
|00001c40| 0d 20 2a 20 20 49 74 20 | 63 68 65 63 6b 73 20 69 |. * It |checks i|
|00001c50| 66 20 74 68 65 20 6d 6f | 75 73 65 20 69 73 20 61 |f the mo|use is a|
|00001c60| 62 6f 76 65 20 6f 72 20 | 62 65 6c 6f 77 20 74 68 |bove or |below th|
|00001c70| 65 20 76 69 65 77 20 72 | 65 63 74 61 6e 67 6c 65 |e view r|ectangle|
|00001c80| 20 61 6e 64 20 70 65 72 | 66 6f 72 6d 73 0d 20 2a | and per|forms. *|
|00001c90| 20 20 61 75 74 6f 6d 61 | 74 69 63 20 73 63 72 6f | automa|tic scro|
|00001ca0| 6c 6c 69 6e 67 20 69 66 | 20 69 74 20 69 73 2e 0d |lling if| it is..|
|00001cb0| 20 2a 2f 0d 0d 2f 2a 20 | 6b 65 76 69 6e 3a 20 63 | */../* |kevin: c|
|00001cc0| 68 61 6e 67 65 64 20 66 | 72 6f 6d 20 70 61 73 63 |hanged f|rom pasc|
|00001cd0| 61 6c 20 42 6f 6f 6c 65 | 61 6e 20 74 6f 20 6c 6f |al Boole|an to lo|
|00001ce0| 6e 67 20 2a 2f 0d 0d 70 | 61 73 63 61 6c 20 42 6f |ng */..p|ascal Bo|
|00001cf0| 6f 6c 65 61 6e 20 43 6c | 69 63 6b 4c 6f 6f 70 28 |olean Cl|ickLoop(|
|00001d00| 29 0d 7b 0d 09 52 65 63 | 74 09 09 76 69 65 77 3b |).{..Rec|t..view;|
|00001d10| 0d 09 50 6f 69 6e 74 09 | 09 6d 6f 75 73 65 3b 0d |..Point.|.mouse;.|
|00001d20| 09 69 6e 74 09 09 09 50 | 72 65 76 46 69 72 73 74 |.int...P|revFirst|
|00001d30| 4c 69 6e 65 3b 0d 09 52 | 67 6e 48 61 6e 64 6c 65 |Line;..R|gnHandle|
|00001d40| 09 50 72 65 76 43 6c 69 | 70 3b 0d 0d 2f 2a 20 73 |.PrevCli|p;../* s|
|00001d50| 61 76 65 20 72 65 67 73 | 20 66 69 72 73 74 20 6b |ave regs| first k|
|00001d60| 65 76 69 6e 2d 2d 61 64 | 64 65 64 20 66 72 6f 6d |evin--ad|ded from|
|00001d70| 20 6d 79 20 6f 77 6e 20 | 54 45 20 63 6f 64 65 3b | my own |TE code;|
|00001d80| 20 69 73 20 74 68 69 73 | 20 72 65 61 6c 6c 79 20 | is this| really |
|00001d90| 6e 65 63 65 73 73 61 72 | 79 3f 20 2a 2f 0d 0d 09 |necessar|y? */...|
|00001da0| 76 69 65 77 20 3d 20 28 | 2a 2a 6b 65 79 64 70 2d |view = (|**keydp-|
|00001db0| 3e 74 65 78 74 68 61 6e | 64 29 2e 76 69 65 77 52 |>texthan|d).viewR|
|00001dc0| 65 63 74 3b 09 09 2f 2a | 20 67 65 74 20 74 68 65 |ect;../*| get the|
|00001dd0| 20 54 45 20 76 69 65 77 | 20 72 65 63 74 20 2a 2f | TE view| rect */|
|00001de0| 0d 09 50 72 65 76 46 69 | 72 73 74 4c 69 6e 65 20 |..PrevFi|rstLine |
|00001df0| 3d 20 6b 65 79 64 70 2d | 3e 46 69 72 73 74 4c 69 |= keydp-|>FirstLi|
|00001e00| 6e 65 3b 0d 09 47 65 74 | 4d 6f 75 73 65 28 20 26 |ne;..Get|Mouse( &|
|00001e10| 6d 6f 75 73 65 20 29 3b | 09 09 09 09 2f 2a 20 67 |mouse );|..../* g|
|00001e20| 65 74 20 6d 6f 75 73 65 | 20 6c 6f 63 20 69 6e 20 |et mouse| loc in |
|00001e30| 6c 6f 63 61 6c 20 63 6f | 6f 72 64 73 20 2a 2f 0d |local co|ords */.|
|00001e40| 0d 09 69 66 28 20 6d 6f | 75 73 65 2e 76 20 3e 20 |..if( mo|use.v > |
|00001e50| 76 69 65 77 2e 62 6f 74 | 74 6f 6d 20 26 26 20 6b |view.bot|tom && k|
|00001e60| 65 79 64 70 2d 3e 46 69 | 72 73 74 4c 69 6e 65 20 |eydp->Fi|rstLine |
|00001e70| 3c 20 53 63 72 6f 6c 6c | 4d 61 78 28 6b 65 79 64 |< Scroll|Max(keyd|
|00001e80| 70 29 20 29 0d 09 09 53 | 63 72 6f 6c 6c 54 6f 4c |p) )...S|crollToL|
|00001e90| 69 6e 65 28 6b 65 79 64 | 70 2c 20 6b 65 79 64 70 |ine(keyd|p, keydp|
|00001ea0| 2d 3e 46 69 72 73 74 4c | 69 6e 65 20 2b 20 31 20 |->FirstL|ine + 1 |
|00001eb0| 29 3b 09 2f 2a 20 62 65 | 6c 6f 77 20 74 68 65 20 |);./* be|low the |
|00001ec0| 62 6f 74 74 6f 6d 20 2a | 2f 0d 0d 09 69 66 28 20 |bottom *|/...if( |
|00001ed0| 6d 6f 75 73 65 2e 76 20 | 3c 20 76 69 65 77 2e 74 |mouse.v |< view.t|
|00001ee0| 6f 70 20 26 26 20 6b 65 | 79 64 70 2d 3e 46 69 72 |op && ke|ydp->Fir|
|00001ef0| 73 74 4c 69 6e 65 20 3e | 20 30 20 29 0d 09 09 53 |stLine >| 0 )...S|
|00001f00| 63 72 6f 6c 6c 54 6f 4c | 69 6e 65 28 6b 65 79 64 |crollToL|ine(keyd|
|00001f10| 70 2c 20 20 6b 65 79 64 | 70 2d 3e 46 69 72 73 74 |p, keyd|p->First|
|00001f20| 4c 69 6e 65 20 2d 20 31 | 20 29 3b 09 2f 2a 20 61 |Line - 1| );./* a|
|00001f30| 62 6f 76 65 20 74 68 65 | 20 74 6f 70 20 2a 2f 0d |bove the| top */.|
|00001f40| 0d 09 69 66 28 20 6b 65 | 79 64 70 2d 3e 46 69 72 |..if( ke|ydp->Fir|
|00001f50| 73 74 4c 69 6e 65 20 21 | 3d 20 50 72 65 76 46 69 |stLine !|= PrevFi|
|00001f60| 72 73 74 4c 69 6e 65 20 | 29 20 2f 2a 20 68 61 76 |rstLine |) /* hav|
|00001f70| 65 20 77 65 20 73 63 72 | 6f 6c 6c 65 64 3f 20 2a |e we scr|olled? *|
|00001f80| 2f 0d 09 7b 09 09 09 09 | 09 09 09 09 20 2f 2a 20 |/..{....|.... /* |
|00001f90| 20 74 68 65 6e 20 77 65 | 20 6d 75 73 74 20 64 72 | then we| must dr|
|00001fa0| 61 77 20 74 68 65 20 73 | 63 72 6f 6c 6c 20 62 61 |aw the s|croll ba|
|00001fb0| 72 20 2a 2f 0d 09 09 47 | 65 74 43 6c 69 70 09 09 |r */...G|etClip..|
|00001fc0| 28 20 50 72 65 76 43 6c | 69 70 20 3d 20 4e 65 77 |( PrevCl|ip = New|
|00001fd0| 52 67 6e 28 29 20 29 3b | 09 2f 2a 20 20 62 65 63 |Rgn() );|./* bec|
|00001fe0| 61 75 73 65 20 63 6c 69 | 70 52 67 6e 20 69 73 20 |ause cli|pRgn is |
|00001ff0| 6d 6f 64 69 66 69 65 64 | 20 2a 2f 0d 09 09 43 6c |modified| */...Cl|
|00002000| 69 70 52 65 63 74 09 28 | 20 26 28 2a 2a 6b 65 79 |ipRect.(| &(**key|
|00002010| 64 70 2d 3e 76 42 61 72 | 48 61 6e 64 29 2e 63 6f |dp->vBar|Hand).co|
|00002020| 6e 74 72 6c 52 65 63 74 | 20 29 3b 09 2f 2a 20 20 |ntrlRect| );./* |
|00002030| 64 75 72 69 6e 67 20 54 | 45 43 6c 69 63 6b 20 63 |during T|EClick c|
|00002040| 61 6c 6c 73 20 28 6c 69 | 6b 65 20 6e 6f 77 29 20 |alls (li|ke now) |
|00002050| 2a 2f 0d 09 09 44 72 61 | 77 31 43 6f 6e 74 72 6f |*/...Dra|w1Contro|
|00002060| 6c 28 20 6b 65 79 64 70 | 2d 3e 76 42 61 72 48 61 |l( keydp|->vBarHa|
|00002070| 6e 64 20 29 3b 09 2f 2a | 20 64 72 61 77 20 74 68 |nd );./*| draw th|
|00002080| 65 20 73 63 72 6f 6c 6c | 20 62 61 72 20 2a 2f 0d |e scroll| bar */.|
|00002090| 09 09 53 65 74 43 6c 69 | 70 09 09 28 20 50 72 65 |..SetCli|p..( Pre|
|000020a0| 76 43 6c 69 70 20 29 3b | 09 2f 2a 20 72 65 73 74 |vClip );|./* rest|
|000020b0| 6f 72 65 20 74 68 65 20 | 63 6c 69 70 20 72 65 67 |ore the |clip reg|
|000020c0| 69 6f 6e 20 2a 2f 0d 09 | 09 44 69 73 70 6f 73 65 |ion */..|.Dispose|
|000020d0| 52 67 6e 09 28 20 50 72 | 65 76 43 6c 69 70 20 29 |Rgn.( Pr|evClip )|
|000020e0| 3b 0d 09 7d 0d 0d 09 72 | 65 74 75 72 6e 28 28 42 |;..}...r|eturn((B|
|000020f0| 6f 6f 6c 65 61 6e 29 20 | 54 52 55 45 29 3b 0d 7d |oolean) |TRUE);.}|
|00002100| 0d 0d 2f 2a 20 52 65 70 | 41 63 74 69 6f 6e 20 69 |../* Rep|Action i|
|00002110| 73 20 63 61 6c 6c 65 64 | 20 72 65 70 65 61 74 65 |s called| repeate|
|00002120| 64 6c 79 20 62 79 20 54 | 6f 6f 6c 42 6f 78 20 54 |dly by T|oolBox T|
|00002130| 72 61 63 6b 43 6f 6e 74 | 72 6f 6c 20 72 6f 75 74 |rackCont|rol rout|
|00002140| 69 6e 65 20 2a 2f 0d 0d | 70 61 73 63 61 6c 20 76 |ine */..|pascal v|
|00002150| 6f 69 64 20 52 65 70 41 | 63 74 69 6f 6e 28 20 43 |oid RepA|ction( C|
|00002160| 74 6c 48 61 6e 64 2c 20 | 50 61 72 74 43 6f 64 65 |tlHand, |PartCode|
|00002170| 20 29 0d 43 6f 6e 74 72 | 6f 6c 48 61 6e 64 6c 65 | ).Contr|olHandle|
|00002180| 09 43 74 6c 48 61 6e 64 | 3b 0d 69 6e 74 09 09 09 |.CtlHand|;.int...|
|00002190| 09 50 61 72 74 43 6f 64 | 65 3b 0d 7b 0d 09 69 6e |.PartCod|e;.{..in|
|000021a0| 74 09 53 63 72 6f 6c 6c | 46 61 63 3b 0d 0d 09 73 |t.Scroll|Fac;...s|
|000021b0| 77 69 74 63 68 28 20 50 | 61 72 74 43 6f 64 65 20 |witch( P|artCode |
|000021c0| 29 0d 09 7b 0d 09 09 63 | 61 73 65 20 69 6e 55 70 |)..{...c|ase inUp|
|000021d0| 42 75 74 74 6f 6e 3a 0d | 09 09 09 53 63 72 6f 6c |Button:.|...Scrol|
|000021e0| 6c 46 61 63 20 3d 20 2d | 31 3b 0d 09 09 09 62 72 |lFac = -|1;....br|
|000021f0| 65 61 6b 3b 0d 09 09 63 | 61 73 65 20 69 6e 44 6f |eak;...c|ase inDo|
|00002200| 77 6e 42 75 74 74 6f 6e | 3a 0d 09 09 09 53 63 72 |wnButton|:....Scr|
|00002210| 6f 6c 6c 46 61 63 20 3d | 20 20 31 3b 0d 09 09 09 |ollFac =| 1;....|
|00002220| 62 72 65 61 6b 3b 0d 09 | 09 63 61 73 65 20 69 6e |break;..|.case in|
|00002230| 50 61 67 65 55 70 3a 0d | 09 09 09 53 63 72 6f 6c |PageUp:.|...Scrol|
|00002240| 6c 46 61 63 20 3d 20 2d | 6b 65 79 64 70 2d 3e 74 |lFac = -|keydp->t|
|00002250| 65 78 74 6c 69 6e 65 73 | 3b 0d 09 09 09 62 72 65 |extlines|;....bre|
|00002260| 61 6b 3b 0d 09 09 63 61 | 73 65 20 69 6e 50 61 67 |ak;...ca|se inPag|
|00002270| 65 44 6f 77 6e 3a 0d 09 | 09 09 53 63 72 6f 6c 6c |eDown:..|..Scroll|
|00002280| 46 61 63 20 3d 20 20 6b | 65 79 64 70 2d 3e 74 65 |Fac = k|eydp->te|
|00002290| 78 74 6c 69 6e 65 73 3b | 0d 09 09 09 62 72 65 61 |xtlines;|....brea|
|000022a0| 6b 3b 0d 09 09 64 65 66 | 61 75 6c 74 3a 0d 09 09 |k;...def|ault:...|
|000022b0| 09 72 65 74 75 72 6e 3b | 0d 09 7d 0d 0d 09 53 63 |.return;|..}...Sc|
|000022c0| 72 6f 6c 6c 54 6f 4c 69 | 6e 65 28 6b 65 79 64 70 |rollToLi|ne(keydp|
|000022d0| 2c 20 6d 61 78 28 20 30 | 2c 20 6d 69 6e 28 20 6b |, max( 0|, min( k|
|000022e0| 65 79 64 70 2d 3e 46 69 | 72 73 74 4c 69 6e 65 20 |eydp->Fi|rstLine |
|000022f0| 2b 20 53 63 72 6f 6c 6c | 46 61 63 2c 20 53 63 72 |+ Scroll|Fac, Scr|
|00002300| 6f 6c 6c 4d 61 78 28 6b | 65 79 64 70 29 20 29 20 |ollMax(k|eydp) ) |
|00002310| 29 20 29 3b 0d 7d 0d 0d | 2f 2a 20 20 4d 6f 76 65 |) );.}..|/* Move|
|00002320| 20 45 6c 65 76 61 74 6f | 72 20 69 73 20 63 61 6c | Elevato|r is cal|
|00002330| 6c 65 64 20 61 66 74 65 | 72 20 74 68 65 20 73 63 |led afte|r the sc|
|00002340| 72 6f 6c 6c 20 62 61 72 | 20 27 74 68 75 6d 62 27 |roll bar| 'thumb'|
|00002350| 20 69 73 20 6d 6f 76 65 | 64 20 2a 2f 0d 0d 4d 6f | is move|d */..Mo|
|00002360| 76 65 45 6c 65 76 61 74 | 6f 72 28 20 43 74 6c 48 |veElevat|or( CtlH|
|00002370| 61 6e 64 20 29 0d 43 6f | 6e 74 72 6f 6c 48 61 6e |and ).Co|ntrolHan|
|00002380| 64 6c 65 09 43 74 6c 48 | 61 6e 64 3b 0d 7b 0d 09 |dle.CtlH|and;.{..|
|00002390| 53 63 72 6f 6c 6c 54 6f | 4c 69 6e 65 28 6b 65 79 |ScrollTo|Line(key|
|000023a0| 64 70 2c 20 47 65 74 43 | 74 6c 56 61 6c 75 65 28 |dp, GetC|tlValue(|
|000023b0| 20 43 74 6c 48 61 6e 64 | 20 29 20 29 3b 0d 7d 0d | CtlHand| ) );.}.|
|000023c0| 0d 2f 2a 20 20 50 75 74 | 20 74 68 65 4c 69 6e 65 |./* Put| theLine|
|000023d0| 20 61 74 20 74 68 65 20 | 74 6f 70 20 6f 66 20 74 | at the |top of t|
|000023e0| 68 65 20 73 63 72 65 65 | 6e 20 2a 2f 0d 0d 53 63 |he scree|n */..Sc|
|000023f0| 72 6f 6c 6c 54 6f 4c 69 | 6e 65 28 74 77 70 2c 20 |rollToLi|ne(twp, |
|00002400| 74 68 65 4c 69 6e 65 20 | 29 0d 73 74 72 75 63 74 |theLine |).struct|
|00002410| 20 77 69 6e 64 73 20 2a | 20 74 77 70 3b 0d 69 6e | winds *| twp;.in|
|00002420| 74 20 74 68 65 4c 69 6e | 65 3b 0d 7b 0d 09 54 45 |t theLin|e;.{..TE|
|00002430| 53 63 72 6f 6c 6c 28 20 | 30 2c 20 74 77 70 2d 3e |Scroll( |0, twp->|
|00002440| 6c 69 6e 65 68 65 69 67 | 68 74 20 2a 20 28 20 74 |lineheig|ht * ( t|
|00002450| 77 70 2d 3e 46 69 72 73 | 74 4c 69 6e 65 20 2d 20 |wp->Firs|tLine - |
|00002460| 74 68 65 4c 69 6e 65 20 | 29 2c 20 74 77 70 2d 3e |theLine |), twp->|
|00002470| 74 65 78 74 68 61 6e 64 | 20 29 3b 0d 09 53 65 74 |texthand| );..Set|
|00002480| 43 74 6c 56 61 6c 75 65 | 28 20 74 77 70 2d 3e 76 |CtlValue|( twp->v|
|00002490| 42 61 72 48 61 6e 64 2c | 20 74 77 70 2d 3e 46 69 |BarHand,| twp->Fi|
|000024a0| 72 73 74 4c 69 6e 65 20 | 3d 20 74 68 65 4c 69 6e |rstLine |= theLin|
|000024b0| 65 20 29 3b 0d 7d 0d 0d | 2f 2a 20 20 4d 61 6b 65 |e );.}..|/* Make|
|000024c0| 20 73 75 72 65 20 74 68 | 65 20 73 65 6c 65 63 74 | sure th|e select|
|000024d0| 69 6f 6e 20 72 61 6e 67 | 65 20 69 73 20 69 6e 20 |ion rang|e is in |
|000024e0| 76 69 65 77 20 2a 2f 0d | 0d 53 65 6c 56 69 65 77 |view */.|.SelView|
|000024f0| 28 74 77 70 29 0d 73 74 | 72 75 63 74 20 77 69 6e |(twp).st|ruct win|
|00002500| 64 73 20 2a 20 74 77 70 | 3b 0d 7b 0d 09 72 65 67 |ds * twp|;.{..reg|
|00002510| 69 73 74 65 72 20 69 6e | 74 20 4e 65 77 46 69 72 |ister in|t NewFir|
|00002520| 73 74 3b 09 2f 2a 20 6c | 69 6e 65 20 73 65 6c 65 |st;./* l|ine sele|
|00002530| 63 74 69 6f 6e 20 73 74 | 61 72 74 73 20 6f 6e 20 |ction st|arts on |
|00002540| 2a 2f 0d 0d 2f 2a 20 20 | 52 65 74 75 72 6e 20 74 |*/../* |Return t|
|00002550| 68 65 20 6c 69 6e 65 20 | 6e 75 6d 62 65 72 20 74 |he line |number t|
|00002560| 68 61 74 20 74 68 65 20 | 73 65 6c 65 63 74 69 6f |hat the |selectio|
|00002570| 6e 20 72 61 6e 67 65 20 | 73 74 61 72 74 73 20 6f |n range |starts o|
|00002580| 6e 2e 0d 20 2a 20 20 52 | 61 6e 67 65 20 69 73 20 |n.. * R|ange is |
|00002590| 30 20 74 68 72 6f 75 67 | 68 20 6e 4c 69 6e 65 73 |0 throug|h nLines|
|000025a0| 2d 31 2e 0d 20 2a 2f 0d | 0d 09 73 74 61 74 69 63 |-1.. */.|..static|
|000025b0| 20 69 6e 74 09 20 50 72 | 65 76 43 75 72 20 3d 20 | int. Pr|evCur = |
|000025c0| 30 3b 0d 09 69 6e 74 09 | 09 09 20 2a 46 72 73 74 |0;..int.|.. *Frst|
|000025d0| 4c 69 6e 65 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |Line;..r|egister |
|000025e0| 69 6e 74 20 2a 4c 61 73 | 74 4c 69 6e 65 2c 20 2a |int *Las|tLine, *|
|000025f0| 43 68 65 63 6b 4c 69 6e | 65 3b 0d 09 72 65 67 69 |CheckLin|e;..regi|
|00002600| 73 74 65 72 20 69 6e 74 | 20 53 65 6c 4c 6f 63 3b |ster int| SelLoc;|
|00002610| 0d 09 69 6e 74 09 09 09 | 20 4e 75 6d 4c 69 6e 65 |..int...| NumLine|
|00002620| 73 3b 0d 0d 09 2f 2a 20 | 6b 65 76 69 6e 3a 20 20 |s;.../* |kevin: |
|00002630| 66 6f 6c 64 65 64 20 69 | 6e 20 43 75 72 4c 69 6e |folded i|n CurLin|
|00002640| 65 28 29 20 72 6f 75 74 | 69 6e 65 20 2a 2f 0d 09 |e() rout|ine */..|
|00002650| 69 66 28 20 28 20 4e 75 | 6d 4c 69 6e 65 73 20 3d |if( ( Nu|mLines =|
|00002660| 20 28 2a 2a 74 77 70 2d | 3e 74 65 78 74 68 61 6e | (**twp-|>texthan|
|00002670| 64 29 2e 6e 4c 69 6e 65 | 73 20 2d 20 31 20 29 20 |d).nLine|s - 1 ) |
|00002680| 3c 20 30 20 29 20 7b 0d | 09 09 4e 65 77 46 69 72 |< 0 ) {.|..NewFir|
|00002690| 73 74 20 3d 20 50 72 65 | 76 43 75 72 20 3d 20 30 |st = Pre|vCur = 0|
|000026a0| 3b 09 09 2f 2a 20 6e 4c | 69 6e 65 73 20 69 73 20 |;../* nL|ines is |
|000026b0| 73 6f 6d 65 74 69 6d 65 | 73 20 7a 65 72 6f 20 2a |sometime|s zero *|
|000026c0| 2f 0d 09 7d 0d 09 65 6c | 73 65 20 7b 0d 09 09 53 |/..}..el|se {...S|
|000026d0| 65 6c 4c 6f 63 09 20 20 | 3d 20 28 2a 2a 74 77 70 |elLoc. |= (**twp|
|000026e0| 2d 3e 74 65 78 74 68 61 | 6e 64 29 2e 73 65 6c 53 |->textha|nd).selS|
|000026f0| 74 61 72 74 3b 0d 09 09 | 46 72 73 74 4c 69 6e 65 |tart;...|FrstLine|
|00002700| 20 20 3d 20 28 2a 2a 74 | 77 70 2d 3e 74 65 78 74 | = (**t|wp->text|
|00002710| 68 61 6e 64 29 2e 6c 69 | 6e 65 53 74 61 72 74 73 |hand).li|neStarts|
|00002720| 3b 0d 09 09 4c 61 73 74 | 4c 69 6e 65 20 20 3d 20 |;...Last|Line = |
|00002730| 46 72 73 74 4c 69 6e 65 | 20 2b 20 4e 75 6d 4c 69 |FrstLine| + NumLi|
|00002740| 6e 65 73 3b 0d 09 09 43 | 68 65 63 6b 4c 69 6e 65 |nes;...C|heckLine|
|00002750| 20 3d 20 46 72 73 74 4c | 69 6e 65 20 2b 20 6d 69 | = FrstL|ine + mi|
|00002760| 6e 28 20 50 72 65 76 43 | 75 72 2c 20 4e 75 6d 4c |n( PrevC|ur, NumL|
|00002770| 69 6e 65 73 20 29 3b 0d | 09 0d 09 09 77 68 69 6c |ines );.|....whil|
|00002780| 65 28 20 2a 43 68 65 63 | 6b 4c 69 6e 65 20 3c 20 |e( *Chec|kLine < |
|00002790| 53 65 6c 4c 6f 63 20 26 | 26 20 43 68 65 63 6b 4c |SelLoc &|& CheckL|
|000027a0| 69 6e 65 20 3c 20 4c 61 | 73 74 4c 69 6e 65 20 29 |ine < La|stLine )|
|000027b0| 0d 09 09 09 43 68 65 63 | 6b 4c 69 6e 65 2b 2b 3b |....Chec|kLine++;|
|000027c0| 09 09 09 09 2f 2a 20 63 | 68 65 63 6b 20 6c 69 6e |..../* c|heck lin|
|000027d0| 65 53 74 61 72 74 73 20 | 61 66 74 65 72 20 70 72 |eStarts |after pr|
|000027e0| 65 76 69 6f 75 73 20 63 | 75 72 6c 69 6e 65 20 2a |evious c|urline *|
|000027f0| 2f 0d 09 0d 09 09 77 68 | 69 6c 65 28 20 2a 43 68 |/.....wh|ile( *Ch|
|00002800| 65 63 6b 4c 69 6e 65 20 | 3e 20 53 65 6c 4c 6f 63 |eckLine |> SelLoc|
|00002810| 20 29 0d 09 09 09 43 68 | 65 63 6b 4c 69 6e 65 2d | )....Ch|eckLine-|
|00002820| 2d 3b 09 09 09 09 2f 2a | 20 74 68 65 6e 20 63 68 |-;..../*| then ch|
|00002830| 65 63 6b 20 6c 69 6e 65 | 53 74 61 72 74 73 20 62 |eck line|Starts b|
|00002840| 65 66 6f 72 65 20 69 74 | 20 2a 2f 0d 09 0d 09 09 |efore it| */.....|
|00002850| 4e 65 77 46 69 72 73 74 | 20 3d 20 50 72 65 76 43 |NewFirst| = PrevC|
|00002860| 75 72 20 3d 20 43 68 65 | 63 6b 4c 69 6e 65 20 2d |ur = Che|ckLine -|
|00002870| 20 46 72 73 74 4c 69 6e | 65 3b 0d 09 7d 0d 09 69 | FrstLin|e;..}..i|
|00002880| 66 28 20 4e 65 77 46 69 | 72 73 74 20 3c 20 74 77 |f( NewFi|rst < tw|
|00002890| 70 2d 3e 46 69 72 73 74 | 4c 69 6e 65 20 29 20 7b |p->First|Line ) {|
|000028a0| 0d 09 09 2f 2a 20 6b 65 | 76 69 6e 3a 20 72 65 70 |.../* ke|vin: rep|
|000028b0| 6c 61 63 65 64 20 09 09 | 09 53 63 72 6f 6c 6c 54 |laced ..|.ScrollT|
|000028c0| 6f 4c 69 6e 65 28 20 4e | 65 77 46 69 72 73 74 20 |oLine( N|ewFirst |
|000028d0| 29 3b 20 77 68 69 63 68 | 20 75 73 65 73 20 6b 65 |); which| uses ke|
|000028e0| 79 64 70 20 2a 2f 0d 0d | 09 09 53 63 72 6f 6c 6c |ydp */..|..Scroll|
|000028f0| 54 6f 4c 69 6e 65 28 74 | 77 70 2c 20 4e 65 77 46 |ToLine(t|wp, NewF|
|00002900| 69 72 73 74 20 29 3b 0d | 09 7d 0d 09 65 6c 73 65 |irst );.|.}..else|
|00002910| 20 69 66 28 20 28 20 4e | 65 77 46 69 72 73 74 20 | if( ( N|ewFirst |
|00002920| 2d 3d 20 28 74 77 70 2d | 3e 74 65 78 74 6c 69 6e |-= (twp-|>textlin|
|00002930| 65 73 20 2d 20 31 29 20 | 29 20 3e 20 74 77 70 2d |es - 1) |) > twp-|
|00002940| 3e 46 69 72 73 74 4c 69 | 6e 65 20 29 20 7b 0d 09 |>FirstLi|ne ) {..|
|00002950| 09 53 63 72 6f 6c 6c 54 | 6f 4c 69 6e 65 28 74 77 |.ScrollT|oLine(tw|
|00002960| 70 2c 20 4e 65 77 46 69 | 72 73 74 20 29 3b 0d 09 |p, NewFi|rst );..|
|00002970| 7d 0d 7d 0d 0d 2f 2a 20 | 20 53 63 72 6f 6c 6c 4d |}.}../* | ScrollM|
|00002980| 61 78 20 69 73 20 75 73 | 65 64 20 74 6f 20 63 61 |ax is us|ed to ca|
|00002990| 6c 63 75 6c 61 74 65 20 | 74 68 65 20 6d 61 78 69 |lculate |the maxi|
|000029a0| 6d 75 6d 20 73 63 72 6f | 6c 6c 20 62 61 72 20 73 |mum scro|ll bar s|
|000029b0| 65 74 74 69 6e 67 20 2a | 2f 0d 0d 69 6e 74 20 20 |etting *|/..int |
|000029c0| 53 63 72 6f 6c 6c 4d 61 | 78 28 74 77 70 29 0d 73 |ScrollMa|x(twp).s|
|000029d0| 74 72 75 63 74 20 77 69 | 6e 64 73 20 2a 20 74 77 |truct wi|nds * tw|
|000029e0| 70 3b 0d 7b 0d 09 72 65 | 74 75 72 6e 28 20 6d 61 |p;.{..re|turn( ma|
|000029f0| 78 28 20 74 77 70 2d 3e | 46 69 72 73 74 4c 69 6e |x( twp->|FirstLin|
|00002a00| 65 2c 20 28 2a 2a 74 77 | 70 2d 3e 74 65 78 74 68 |e, (**tw|p->texth|
|00002a10| 61 6e 64 29 2e 6e 4c 69 | 6e 65 73 20 2d 20 28 74 |and).nLi|nes - (t|
|00002a20| 77 70 2d 3e 74 65 78 74 | 6c 69 6e 65 73 29 20 29 |wp->text|lines) )|
|00002a30| 20 29 3b 0d 7d 0d 0d 0d | 0d 69 6e 74 20 6d 69 6e | );.}...|.int min|
|00002a40| 28 20 76 31 2c 20 76 32 | 20 29 0d 72 65 67 69 73 |( v1, v2| ).regis|
|00002a50| 74 65 72 20 69 6e 74 20 | 76 31 2c 20 76 32 3b 0d |ter int |v1, v2;.|
|00002a60| 7b 0d 09 72 65 74 75 72 | 6e 28 20 76 31 20 3c 20 |{..retur|n( v1 < |
|00002a70| 76 32 20 3f 20 76 31 20 | 3a 20 76 32 20 29 3b 0d |v2 ? v1 |: v2 );.|
|00002a80| 7d 0d 0d 69 6e 74 20 6d | 61 78 28 20 76 31 2c 20 |}..int m|ax( v1, |
|00002a90| 76 32 20 29 0d 72 65 67 | 69 73 74 65 72 20 69 6e |v2 ).reg|ister in|
|00002aa0| 74 20 76 31 2c 20 76 32 | 3b 0d 7b 0d 09 72 65 74 |t v1, v2|;.{..ret|
|00002ab0| 75 72 6e 28 20 76 31 20 | 3e 20 76 32 20 3f 20 76 |urn( v1 |> v2 ? v|
|00002ac0| 31 20 3a 20 76 32 20 29 | 3b 0d 7d 0d 0d 0d 2f 2a |1 : v2 )|;.}.../*|
|00002ad0| 20 09 74 65 78 74 77 75 | 6e 77 72 61 70 20 61 74 | .textwu|nwrap at|
|00002ae0| 74 65 6d 70 74 73 20 74 | 6f 20 63 6f 6e 76 65 72 |tempts t|o conver|
|00002af0| 74 20 74 68 65 20 74 65 | 78 74 20 69 6e 20 54 65 |t the te|xt in Te|
|00002b00| 78 74 48 61 6e 64 20 66 | 72 6f 6d 20 2d 6d 61 69 |xtHand f|rom -mai|
|00002b10| 6e 66 72 61 6d 65 2d 20 | 66 6f 72 6d 61 74 0d 20 |nframe- |format. |
|00002b20| 2a 20 20 74 6f 20 2d 54 | 65 78 74 45 64 69 74 2d |* to -T|extEdit-|
|00002b30| 20 66 6f 72 6d 61 74 2e | 20 20 54 68 61 74 20 6d | format.| That m|
|00002b40| 65 61 6e 73 20 63 68 61 | 6e 67 69 6e 67 20 74 68 |eans cha|nging th|
|00002b50| 65 20 72 65 74 75 72 6e | 73 20 61 74 20 74 68 65 |e return|s at the|
|00002b60| 20 65 6e 64 20 6f 66 20 | 6c 69 6e 65 73 0d 20 2a | end of |lines. *|
|00002b70| 20 20 74 68 61 74 20 73 | 68 6f 75 6c 64 20 62 65 | that s|hould be|
|00002b80| 20 77 72 61 70 70 65 64 | 20 69 6e 74 6f 20 73 70 | wrapped| into sp|
|00002b90| 61 63 65 73 2e 0d 20 2a | 2f 0d 0d 74 65 78 74 77 |aces.. *|/..textw|
|00002ba0| 75 6e 77 72 61 70 28 74 | 77 70 29 0d 73 74 72 75 |unwrap(t|wp).stru|
|00002bb0| 63 74 20 77 69 6e 64 73 | 20 2a 20 74 77 70 3b 0d |ct winds| * twp;.|
|00002bc0| 7b 0d 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |{..regis|ter char|
|00002bd0| 20 70 72 65 76 2c 20 74 | 68 69 73 2c 20 6e 65 78 | prev, t|his, nex|
|00002be0| 74 2c 20 2a 63 50 74 72 | 3b 0d 09 72 65 67 69 73 |t, *cPtr|;..regis|
|00002bf0| 74 65 72 20 69 6e 74 20 | 20 74 68 65 4c 65 6e 3b |ter int | theLen;|
|00002c00| 0d 09 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 63 |..regist|er int c|
|00002c10| 68 61 72 63 6f 75 6e 74 | 20 3d 20 30 3b 0d 09 72 |harcount| = 0;..r|
|00002c20| 65 67 69 73 74 65 72 20 | 69 6e 74 20 73 65 6c 73 |egister |int sels|
|00002c30| 74 61 72 74 20 3d 20 28 | 2a 74 77 70 2d 3e 74 65 |tart = (|*twp->te|
|00002c40| 78 74 68 61 6e 64 29 2d | 3e 73 65 6c 53 74 61 72 |xthand)-|>selStar|
|00002c50| 74 3b 0d 09 72 65 67 69 | 73 74 65 72 20 69 6e 74 |t;..regi|ster int|
|00002c60| 20 73 65 6c 65 6e 64 20 | 3d 20 28 2a 74 77 70 2d | selend |= (*twp-|
|00002c70| 3e 74 65 78 74 68 61 6e | 64 29 2d 3e 73 65 6c 45 |>texthan|d)->selE|
|00002c80| 6e 64 3b 0d 09 47 72 61 | 66 50 74 72 20 6f 70 6f |nd;..Gra|fPtr opo|
|00002c90| 72 74 3b 0d 09 0d 09 47 | 65 74 50 6f 72 74 28 26 |rt;....G|etPort(&|
|00002ca0| 6f 70 6f 72 74 29 3b 0d | 09 69 66 20 28 20 28 20 |oport);.|.if ( ( |
|00002cb0| 74 68 65 4c 65 6e 20 3d | 20 28 2a 74 77 70 2d 3e |theLen =| (*twp->|
|00002cc0| 74 65 78 74 68 61 6e 64 | 29 2d 3e 74 65 4c 65 6e |texthand|)->teLen|
|00002cd0| 67 74 68 20 29 20 3d 3d | 20 30 20 29 0d 09 09 72 |gth ) ==| 0 )...r|
|00002ce0| 65 74 75 72 6e 3b 09 09 | 09 09 09 09 2f 2a 20 7a |eturn;..|..../* z|
|00002cf0| 65 72 6f 20 6c 65 6e 67 | 74 68 20 74 65 78 74 20 |ero leng|th text |
|00002d00| 2a 2f 0d 0d 09 53 65 74 | 50 6f 72 74 28 74 77 70 |*/...Set|Port(twp|
|00002d10| 2d 3e 74 65 78 74 77 69 | 6e 64 6f 77 29 3b 0d 09 |->textwi|ndow);..|
|00002d20| 69 66 20 28 73 65 6c 73 | 74 61 72 74 20 3d 3d 20 |if (sels|tart == |
|00002d30| 73 65 6c 65 6e 64 29 20 | 7b 0d 09 09 2f 2a 20 69 |selend) |{.../* i|
|00002d40| 66 20 6e 6f 20 73 65 6c | 65 63 74 69 6f 6e 2c 20 |f no sel|ection, |
|00002d50| 63 6f 6e 76 65 72 74 20 | 74 68 65 20 77 68 6f 6c |convert |the whol|
|00002d60| 65 20 54 45 20 74 65 78 | 74 20 2a 2f 0d 09 09 73 |e TE tex|t */...s|
|00002d70| 65 6c 73 74 61 72 74 20 | 3d 20 30 3b 0d 09 09 73 |elstart |= 0;...s|
|00002d80| 65 6c 65 6e 64 20 3d 20 | 74 68 65 4c 65 6e 3b 0d |elend = |theLen;.|
|00002d90| 09 7d 0d 09 63 50 74 72 | 20 3d 20 2a 28 2a 74 77 |.}..cPtr| = *(*tw|
|00002da0| 70 2d 3e 74 65 78 74 68 | 61 6e 64 29 2d 3e 68 54 |p->texth|and)->hT|
|00002db0| 65 78 74 3b 0d 09 70 72 | 65 76 20 3d 20 27 20 27 |ext;..pr|ev = ' '|
|00002dc0| 3b 09 09 09 09 09 09 2f | 2a 20 6c 6f 61 64 20 69 |;....../|* load i|
|00002dd0| 6e 69 74 69 61 6c 20 63 | 68 61 72 61 63 74 65 72 |nitial c|haracter|
|00002de0| 73 20 2a 2f 0d 09 74 68 | 69 73 20 3d 20 2a 63 50 |s */..th|is = *cP|
|00002df0| 74 72 2b 2b 3b 0d 09 6e | 65 78 74 20 3d 20 2a 63 |tr++;..n|ext = *c|
|00002e00| 50 74 72 3b 0d 09 0d 09 | 77 68 69 6c 65 28 20 2b |Ptr;....|while( +|
|00002e10| 2b 63 68 61 72 63 6f 75 | 6e 74 20 3c 20 74 68 65 |+charcou|nt < the|
|00002e20| 4c 65 6e 20 29 09 09 09 | 09 2f 2a 20 6c 6f 6f 70 |Len )...|./* loop|
|00002e30| 20 74 68 6f 75 67 68 20 | 74 68 65 20 77 68 6f 6c | though |the whol|
|00002e40| 65 20 74 65 78 74 20 2a | 2f 0d 09 7b 0d 09 09 2f |e text *|/..{.../|
|00002e50| 2a 20 6f 6e 6c 79 20 63 | 6f 6e 76 65 72 74 20 74 |* only c|onvert t|
|00002e60| 68 65 20 73 65 6c 65 63 | 74 69 6f 6e 20 72 61 6e |he selec|tion ran|
|00002e70| 67 65 20 2a 2f 0d 09 09 | 69 66 20 28 63 68 61 72 |ge */...|if (char|
|00002e80| 63 6f 75 6e 74 20 3c 20 | 73 65 6c 73 74 61 72 74 |count < |selstart|
|00002e90| 29 20 7b 0d 09 09 09 2b | 2b 63 50 74 72 3b 09 09 |) {....+|+cPtr;..|
|00002ea0| 0d 09 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0d 09 09 |....cont|inue;...|
|00002eb0| 7d 0d 09 09 69 66 20 28 | 63 68 61 72 63 6f 75 6e |}...if (|charcoun|
|00002ec0| 74 20 3e 20 73 65 6c 65 | 6e 64 29 0d 09 09 09 20 |t > sele|nd).... |
|00002ed0| 62 72 65 61 6b 3b 0d 09 | 09 09 20 0d 09 09 69 66 |break;..|.. ...if|
|00002ee0| 20 28 20 74 68 69 73 20 | 3d 3d 20 27 5c 72 27 20 | ( this |== '\r' |
|00002ef0| 29 09 7b 09 0d 09 09 09 | 2f 2a 20 61 20 72 65 74 |).{.....|/* a ret|
|00002f00| 75 72 6e 2c 20 63 68 65 | 63 6b 20 74 6f 20 73 65 |urn, che|ck to se|
|00002f10| 65 20 69 66 20 69 74 20 | 73 68 6f 75 6c 64 20 62 |e if it |should b|
|00002f20| 65 20 72 65 70 6c 61 63 | 65 64 20 77 69 74 68 20 |e replac|ed with |
|00002f30| 61 20 73 70 61 63 65 20 | 2a 2f 0d 09 09 09 69 66 |a space |*/....if|
|00002f40| 20 28 20 20 21 20 28 20 | 20 70 72 65 76 20 3d 3d | ( ! ( | prev ==|
|00002f50| 20 27 5c 72 27 20 20 0d | 0d 09 09 09 09 09 7c 7c | '\r' .|......|||
|00002f60| 20 6e 65 78 74 20 3d 3d | 20 27 20 27 20 0d 09 09 | next ==| ' ' ...|
|00002f70| 09 09 09 7c 7c 20 6e 65 | 78 74 20 3d 3d 20 54 41 |...|| ne|xt == TA|
|00002f80| 42 20 0d 09 09 09 09 09 | 7c 7c 20 6e 65 78 74 20 |B ......||| next |
|00002f90| 3d 3d 20 27 5c 72 27 0d | 09 09 09 09 29 20 0d 09 |== '\r'.|....) ..|
|00002fa0| 09 09 29 20 7b 0d 09 09 | 09 09 2f 2a 20 74 68 65 |..) {...|../* the|
|00002fb0| 72 65 20 61 72 65 20 6e | 6f 6e 2d 73 70 61 63 65 |re are n|on-space|
|00002fc0| 20 63 68 61 72 61 63 74 | 65 72 73 20 61 72 6f 75 | charact|ers arou|
|00002fd0| 6e 64 20 69 74 2c 20 72 | 65 70 6c 61 63 65 20 69 |nd it, r|eplace i|
|00002fe0| 74 20 77 69 74 68 20 61 | 20 73 70 61 63 65 20 2a |t with a| space *|
|00002ff0| 2f 0d 09 09 09 09 2a 28 | 63 50 74 72 20 2d 20 31 |/.....*(|cPtr - 1|
|00003000| 29 20 3d 20 27 20 27 3b | 09 0d 09 09 09 7d 0d 09 |) = ' ';|.....}..|
|00003010| 09 7d 0d 09 09 70 72 65 | 76 20 3d 20 74 68 69 73 |.}...pre|v = this|
|00003020| 3b 09 09 09 09 2f 2a 20 | 73 68 69 66 74 20 74 68 |;..../* |shift th|
|00003030| 65 20 63 68 61 72 73 20 | 6f 76 65 72 20 2a 2f 0d |e chars |over */.|
|00003040| 09 09 74 68 69 73 20 3d | 20 6e 65 78 74 3b 0d 09 |..this =| next;..|
|00003050| 09 6e 65 78 74 20 3d 20 | 2a 2b 2b 63 50 74 72 3b |.next = |*++cPtr;|
|00003060| 0d 09 7d 0d 09 54 45 43 | 61 6c 54 65 78 74 28 74 |..}..TEC|alText(t|
|00003070| 77 70 2d 3e 74 65 78 74 | 68 61 6e 64 29 3b 0d 09 |wp->text|hand);..|
|00003080| 49 6e 76 61 6c 52 65 63 | 74 28 26 28 2a 74 77 70 |InvalRec|t(&(*twp|
|00003090| 2d 3e 74 65 78 74 68 61 | 6e 64 29 2d 3e 76 69 65 |->textha|nd)->vie|
|000030a0| 77 52 65 63 74 29 3b 0d | 0d 09 74 65 78 74 63 74 |wRect);.|..textct|
|000030b0| 6c 75 70 64 28 74 77 70 | 29 3b 0d 09 53 65 6c 56 |lupd(twp|);..SelV|
|000030c0| 69 65 77 28 74 77 70 29 | 3b 0d 09 53 65 74 50 6f |iew(twp)|;..SetPo|
|000030d0| 72 74 28 6f 70 6f 72 74 | 29 3b 0d 7d 0d 0d 2f 2a |rt(oport|);.}../*|
|000030e0| 20 20 74 65 78 74 77 77 | 72 61 70 20 70 65 72 66 | textww|rap perf|
|000030f0| 6f 72 6d 73 20 74 68 65 | 20 6f 70 70 6f 73 69 74 |orms the| opposit|
|00003100| 65 20 66 75 6e 63 74 69 | 6f 6e 20 74 68 61 74 20 |e functi|on that |
|00003110| 74 65 78 74 77 75 6e 77 | 72 61 70 20 64 6f 65 73 |textwunw|rap does|
|00003120| 2e 20 20 49 74 20 70 75 | 74 73 20 72 65 74 75 72 |. It pu|ts retur|
|00003130| 6e 0d 20 2a 20 20 63 68 | 61 72 61 63 74 65 72 73 |n. * ch|aracters|
|00003140| 20 61 74 20 74 68 65 20 | 65 6e 64 20 6f 66 20 65 | at the |end of e|
|00003150| 61 63 68 20 6c 69 6e 65 | 20 74 68 61 74 20 69 73 |ach line| that is|
|00003160| 20 77 72 61 70 70 65 64 | 20 62 79 20 54 65 78 74 | wrapped| by Text|
|00003170| 45 64 69 74 2e 0d 20 2a | 2f 0d 0d 74 65 78 74 77 |Edit.. *|/..textw|
|00003180| 77 72 61 70 28 74 77 70 | 29 0d 73 74 72 75 63 74 |wrap(twp|).struct|
|00003190| 20 77 69 6e 64 73 20 2a | 20 74 77 70 3b 0d 7b 0d | winds *| twp;.{.|
|000031a0| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 20 2a |.registe|r int *|
|000031b0| 6c 53 74 61 72 74 20 20 | 3d 20 28 2a 74 77 70 2d |lStart |= (*twp-|
|000031c0| 3e 74 65 78 74 68 61 6e | 64 29 2d 3e 6c 69 6e 65 |>texthan|d)->line|
|000031d0| 53 74 61 72 74 73 3b 0d | 09 72 65 67 69 73 74 65 |Starts;.|.registe|
|000031e0| 72 20 63 68 61 72 20 2a | 74 68 65 54 65 78 74 20 |r char *|theText |
|000031f0| 3d 20 2a 28 2a 74 77 70 | 2d 3e 74 65 78 74 68 61 |= *(*twp|->textha|
|00003200| 6e 64 29 2d 3e 68 54 65 | 78 74 3b 0d 09 72 65 67 |nd)->hTe|xt;..reg|
|00003210| 69 73 74 65 72 20 69 6e | 74 20 20 6c 43 6f 75 6e |ister in|t lCoun|
|00003220| 74 20 20 20 3d 20 28 2a | 74 77 70 2d 3e 74 65 78 |t = (*|twp->tex|
|00003230| 74 68 61 6e 64 29 2d 3e | 6e 4c 69 6e 65 73 3b 0d |thand)->|nLines;.|
|00003240| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 |.registe|r short |
|00003250| 63 72 70 6f 73 3b 0d 09 | 72 65 67 69 73 74 65 72 |crpos;..|register|
|00003260| 20 69 6e 74 20 73 65 6c | 73 74 61 72 74 20 3d 20 | int sel|start = |
|00003270| 28 2a 74 77 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 |(*twp->t|exthand)|
|00003280| 2d 3e 73 65 6c 53 74 61 | 72 74 3b 0d 09 72 65 67 |->selSta|rt;..reg|
|00003290| 69 73 74 65 72 20 69 6e | 74 20 73 65 6c 65 6e 64 |ister in|t selend|
|000032a0| 20 3d 20 28 2a 74 77 70 | 2d 3e 74 65 78 74 68 61 | = (*twp|->textha|
|000032b0| 6e 64 29 2d 3e 73 65 6c | 45 6e 64 3b 0d 09 69 6e |nd)->sel|End;..in|
|000032c0| 74 20 74 65 78 74 6c 65 | 6e 3b 0d 09 0d 09 74 65 |t textle|n;....te|
|000032d0| 78 74 6c 65 6e 20 3d 20 | 28 2a 74 77 70 2d 3e 74 |xtlen = |(*twp->t|
|000032e0| 65 78 74 68 61 6e 64 29 | 2d 3e 74 65 4c 65 6e 67 |exthand)|->teLeng|
|000032f0| 74 68 3b 20 0d 09 69 66 | 20 28 74 65 78 74 6c 65 |th; ..if| (textle|
|00003300| 6e 20 3d 3d 20 30 29 0d | 09 09 72 65 74 75 72 6e |n == 0).|..return|
|00003310| 3b 09 09 09 09 09 09 2f | 2a 20 7a 65 72 6f 20 6c |;....../|* zero l|
|00003320| 65 6e 67 74 68 20 74 65 | 78 74 20 2a 2f 0d 0d 09 |ength te|xt */...|
|00003330| 69 66 20 28 73 65 6c 73 | 74 61 72 74 20 3d 3d 20 |if (sels|tart == |
|00003340| 73 65 6c 65 6e 64 29 20 | 7b 0d 09 09 2f 2a 20 69 |selend) |{.../* i|
|00003350| 66 20 6e 6f 20 73 65 6c | 65 63 74 69 6f 6e 2c 20 |f no sel|ection, |
|00003360| 63 6f 6e 76 65 72 74 20 | 74 68 65 20 77 68 6f 6c |convert |the whol|
|00003370| 65 20 54 45 20 74 65 78 | 74 20 2a 2f 0d 09 09 73 |e TE tex|t */...s|
|00003380| 65 6c 73 74 61 72 74 20 | 3d 20 30 3b 0d 09 09 73 |elstart |= 0;...s|
|00003390| 65 6c 65 6e 64 20 3d 20 | 74 65 78 74 6c 65 6e 3b |elend = |textlen;|
|000033a0| 0d 09 7d 0d 09 77 68 69 | 6c 65 28 20 2d 2d 6c 43 |..}..whi|le( --lC|
|000033b0| 6f 75 6e 74 20 3e 20 30 | 29 20 7b 0d 09 09 2f 2a |ount > 0|) {.../*|
|000033c0| 20 6f 6e 6c 79 20 63 6f | 6e 76 65 72 74 20 74 68 | only co|nvert th|
|000033d0| 65 20 73 65 6c 65 63 74 | 69 6f 6e 20 72 61 6e 67 |e select|ion rang|
|000033e0| 65 20 2a 2f 0d 09 09 63 | 72 70 6f 73 20 3d 20 2a |e */...c|rpos = *|
|000033f0| 2b 2b 6c 53 74 61 72 74 | 3b 0d 09 09 69 66 20 28 |++lStart|;...if (|
|00003400| 63 72 70 6f 73 20 3c 20 | 73 65 6c 73 74 61 72 74 |crpos < |selstart|
|00003410| 29 09 09 0d 09 09 09 63 | 6f 6e 74 69 6e 75 65 3b |)......c|ontinue;|
|00003420| 0d 09 09 69 66 20 28 63 | 72 70 6f 73 20 3e 20 73 |...if (c|rpos > s|
|00003430| 65 6c 65 6e 64 29 0d 09 | 09 09 20 62 72 65 61 6b |elend)..|.. break|
|00003440| 3b 0d 09 09 74 68 65 54 | 65 78 74 5b 20 63 72 70 |;...theT|ext[ crp|
|00003450| 6f 73 20 2d 20 31 20 5d | 20 3d 20 27 5c 72 27 3b |os - 1 ]| = '\r';|
|00003460| 09 2f 2a 20 70 75 74 20 | 61 20 72 65 74 75 72 6e |./* put |a return|
|00003470| 20 61 74 20 65 61 63 68 | 20 45 4f 4c 20 2a 2f 0d | at each| EOL */.|
|00003480| 09 7d 0d 09 2f 2a 20 6e | 6f 20 6e 65 65 64 20 74 |.}../* n|o need t|
|00003490| 6f 20 75 70 64 61 74 65 | 2c 20 62 65 63 61 75 73 |o update|, becaus|
|000034a0| 65 20 74 68 65 20 61 70 | 70 65 61 72 61 6e 63 65 |e the ap|pearance|
|000034b0| 20 69 73 20 75 6e 63 68 | 61 6e 67 65 64 20 2a 2f | is unch|anged */|
|000034c0| 0d 7d 0d 0d 2f 2a 20 65 | 6e 64 20 6f 66 20 48 6f |.}../* e|nd of Ho|
|000034d0| 72 6e 69 67 20 72 6f 75 | 74 69 6e 65 73 20 2a 2f |rnig rou|tines */|
|000034e0| 0d 0d 74 65 78 74 63 74 | 6c 75 70 64 28 74 77 70 |..textct|lupd(twp|
|000034f0| 29 0d 73 74 72 75 63 74 | 20 77 69 6e 64 73 20 2a |).struct| winds *|
|00003500| 20 74 77 70 3b 0d 7b 0d | 09 53 65 74 43 74 6c 4d | twp;.{.|.SetCtlM|
|00003510| 61 78 28 20 74 77 70 2d | 3e 76 42 61 72 48 61 6e |ax( twp-|>vBarHan|
|00003520| 64 2c 20 53 63 72 6f 6c | 6c 4d 61 78 28 74 77 70 |d, Scrol|lMax(twp|
|00003530| 29 20 29 3b 09 09 2f 2a | 20 6d 61 6b 65 20 73 75 |) );../*| make su|
|00003540| 72 65 20 73 63 72 6f 6c | 6c 20 62 61 72 20 6d 61 |re scrol|l bar ma|
|00003550| 78 20 69 73 20 63 6f 72 | 72 65 63 74 20 2a 2f 0d |x is cor|rect */.|
|00003560| 09 53 65 74 43 74 6c 56 | 61 6c 75 65 28 20 74 77 |.SetCtlV|alue( tw|
|00003570| 70 2d 3e 76 42 61 72 48 | 61 6e 64 2c 20 74 77 70 |p->vBarH|and, twp|
|00003580| 2d 3e 46 69 72 73 74 4c | 69 6e 65 20 29 3b 09 2f |->FirstL|ine );./|
|00003590| 2a 20 61 6e 64 20 74 68 | 65 20 74 68 75 6d 62 20 |* and th|e thumb |
|000035a0| 69 73 20 69 6e 20 74 68 | 65 20 72 69 67 68 74 20 |is in th|e right |
|000035b0| 70 6c 61 63 65 20 2a 2f | 0d 7d 0d 0d 0d 2f 2a 20 |place */|.}.../* |
|000035c0| 63 75 74 20 74 65 78 74 | 20 66 72 6f 6d 20 61 20 |cut text| from a |
|000035d0| 74 65 78 74 20 77 69 6e | 64 6f 77 20 2a 2f 0d 0d |text win|dow */..|
|000035e0| 74 65 78 74 77 63 75 74 | 28 74 77 70 29 0d 73 74 |textwcut|(twp).st|
|000035f0| 72 75 63 74 20 77 69 6e | 64 73 20 2a 20 74 77 70 |ruct win|ds * twp|
|00003600| 3b 0d 7b 0d 09 74 77 70 | 2d 3e 74 65 78 74 73 63 |;.{..twp|->textsc|
|00003610| 72 61 70 70 65 64 20 3d | 20 54 52 55 45 3b 0d 09 |rapped =| TRUE;..|
|00003620| 53 65 6c 56 69 65 77 28 | 74 77 70 29 3b 09 09 09 |SelView(|twp);...|
|00003630| 09 09 2f 2a 20 67 75 61 | 72 61 6e 74 65 65 20 46 |../* gua|rantee F|
|00003640| 69 72 73 74 4c 69 6e 65 | 20 77 6f 6e 27 74 20 63 |irstLine| won't c|
|00003650| 68 61 6e 67 65 20 2a 2f | 0d 09 54 45 43 75 74 28 |hange */|..TECut(|
|00003660| 74 77 70 2d 3e 74 65 78 | 74 68 61 6e 64 29 3b 0d |twp->tex|thand);.|
|00003670| 09 74 65 78 74 63 74 6c | 75 70 64 28 74 77 70 29 |.textctl|upd(twp)|
|00003680| 3b 0d 7d 0d 0d 2f 2a 20 | 63 75 74 20 74 65 78 74 |;.}../* |cut text|
|00003690| 20 66 72 6f 6d 20 61 20 | 74 65 78 74 20 77 69 6e | from a |text win|
|000036a0| 64 6f 77 20 2a 2f 0d 0d | 74 65 78 74 77 63 6c 65 |dow */..|textwcle|
|000036b0| 61 72 28 74 77 70 29 0d | 73 74 72 75 63 74 20 77 |ar(twp).|struct w|
|000036c0| 69 6e 64 73 20 2a 20 74 | 77 70 3b 0d 7b 0d 09 53 |inds * t|wp;.{..S|
|000036d0| 65 6c 56 69 65 77 28 74 | 77 70 29 3b 09 09 09 09 |elView(t|wp);....|
|000036e0| 09 2f 2a 20 67 75 61 72 | 61 6e 74 65 65 20 46 69 |./* guar|antee Fi|
|000036f0| 72 73 74 4c 69 6e 65 20 | 77 6f 6e 27 74 20 63 68 |rstLine |won't ch|
|00003700| 61 6e 67 65 20 2a 2f 0d | 09 54 45 44 65 6c 65 74 |ange */.|.TEDelet|
|00003710| 65 28 74 77 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 |e(twp->t|exthand)|
|00003720| 3b 0d 09 74 65 78 74 63 | 74 6c 75 70 64 28 74 77 |;..textc|tlupd(tw|
|00003730| 70 29 3b 0d 7d 0d 0d 2f | 2a 20 63 6f 70 79 20 74 |p);.}../|* copy t|
|00003740| 65 78 74 20 66 72 6f 6d | 20 61 20 74 65 78 74 20 |ext from| a text |
|00003750| 77 69 6e 64 6f 77 20 2a | 2f 0d 0d 74 65 78 74 77 |window *|/..textw|
|00003760| 63 6f 70 79 28 74 77 70 | 29 0d 73 74 72 75 63 74 |copy(twp|).struct|
|00003770| 20 77 69 6e 64 73 20 2a | 20 74 77 70 3b 0d 7b 0d | winds *| twp;.{.|
|00003780| 09 6c 6f 6e 67 20 6c 65 | 6e 3b 0d 09 0d 09 74 77 |.long le|n;....tw|
|00003790| 70 2d 3e 74 65 78 74 73 | 63 72 61 70 70 65 64 20 |p->texts|crapped |
|000037a0| 3d 20 54 52 55 45 3b 0d | 09 6c 65 6e 20 3d 20 28 |= TRUE;.|.len = (|
|000037b0| 2a 74 77 70 2d 3e 74 65 | 78 74 68 61 6e 64 29 2d |*twp->te|xthand)-|
|000037c0| 3e 73 65 6c 45 6e 64 20 | 2d 20 28 2a 74 77 70 2d |>selEnd |- (*twp-|
|000037d0| 3e 74 65 78 74 68 61 6e | 64 29 2d 3e 73 65 6c 53 |>texthan|d)->selS|
|000037e0| 74 61 72 74 3b 0d 09 69 | 66 20 28 6d 65 6d 74 65 |tart;..i|f (memte|
|000037f0| 73 74 28 6c 65 6e 2c 20 | 63 6f 70 79 65 72 72 29 |st(len, |copyerr)|
|00003800| 29 20 7b 0d 09 09 54 45 | 43 6f 70 79 28 74 77 70 |) {...TE|Copy(twp|
|00003810| 2d 3e 74 65 78 74 68 61 | 6e 64 29 3b 0d 09 7d 0d |->textha|nd);..}.|
|00003820| 7d 0d 0d 0d 2f 2a 20 70 | 61 73 74 65 20 74 65 78 |}.../* p|aste tex|
|00003830| 74 20 69 6e 74 6f 20 61 | 20 74 65 78 74 20 77 69 |t into a| text wi|
|00003840| 6e 64 6f 77 20 2a 2f 0d | 0d 74 65 78 74 77 70 61 |ndow */.|.textwpa|
|00003850| 73 74 65 28 74 77 70 29 | 0d 73 74 72 75 63 74 20 |ste(twp)|.struct |
|00003860| 77 69 6e 64 73 20 2a 20 | 74 77 70 3b 0d 7b 0d 09 |winds * |twp;.{..|
|00003870| 6c 6f 6e 67 20 6c 65 6e | 3b 0d 09 0d 09 6c 65 6e |long len|;....len|
|00003880| 20 3d 20 54 45 53 63 72 | 4c 65 6e 20 2d 20 0d 09 | = TEScr|Len - ..|
|00003890| 09 28 28 2a 74 77 70 2d | 3e 74 65 78 74 68 61 6e |.((*twp-|>texthan|
|000038a0| 64 29 2d 3e 73 65 6c 45 | 6e 64 20 2d 20 28 2a 74 |d)->selE|nd - (*t|
|000038b0| 77 70 2d 3e 74 65 78 74 | 68 61 6e 64 29 2d 3e 73 |wp->text|hand)->s|
|000038c0| 65 6c 53 74 61 72 74 29 | 3b 0d 0d 09 69 66 20 28 |elStart)|;...if (|
|000038d0| 6c 65 6e 20 3c 20 30 20 | 7c 7c 20 6d 65 6d 74 65 |len < 0 ||| memte|
|000038e0| 73 74 28 6c 65 6e 2c 20 | 63 6f 70 79 65 72 72 29 |st(len, |copyerr)|
|000038f0| 29 20 7b 0d 09 09 2f 2a | 20 6d 69 67 68 74 20 62 |) {.../*| might b|
|00003900| 65 20 73 6d 61 6c 6c 65 | 72 20 74 68 61 6e 20 62 |e smalle|r than b|
|00003910| 65 66 6f 72 65 2e 2e 2e | 20 2a 2f 0d 09 09 53 65 |efore...| */...Se|
|00003920| 6c 56 69 65 77 28 74 77 | 70 29 3b 09 09 09 09 09 |lView(tw|p);.....|
|00003930| 2f 2a 20 67 75 61 72 61 | 6e 74 65 65 20 46 69 72 |/* guara|ntee Fir|
|00003940| 73 74 4c 69 6e 65 20 77 | 6f 6e 27 74 20 63 68 61 |stLine w|on't cha|
|00003950| 6e 67 65 20 2a 2f 0d 09 | 09 54 45 50 61 73 74 65 |nge */..|.TEPaste|
|00003960| 28 74 77 70 2d 3e 74 65 | 78 74 68 61 6e 64 29 3b |(twp->te|xthand);|
|00003970| 0d 09 09 74 65 78 74 63 | 74 6c 75 70 64 28 74 77 |...textc|tlupd(tw|
|00003980| 70 29 3b 0d 09 09 53 65 | 6c 56 69 65 77 28 74 77 |p);...Se|lView(tw|
|00003990| 70 29 3b 0d 09 7d 0d 7d | 0d 0d 23 64 65 66 69 6e |p);..}.}|..#defin|
|000039a0| 65 20 46 49 4c 45 43 4f | 4d 50 41 54 0d 23 69 66 |e FILECO|MPAT.#if|
|000039b0| 64 65 66 20 46 49 4c 45 | 43 4f 4d 50 41 54 0d 2f |def FILE|COMPAT./|
|000039c0| 2a 20 61 6c 6c 20 41 7a | 74 65 63 20 43 20 66 69 |* all Az|tec C fi|
|000039d0| 6c 65 20 72 6f 75 74 69 | 6e 65 73 20 62 6c 6f 77 |le routi|nes blow|
|000039e0| 20 74 68 65 20 72 65 73 | 6f 75 72 63 65 20 66 6f | the res|ource fo|
|000039f0| 72 6b 20 61 77 61 79 2c | 20 61 6e 64 20 6d 75 73 |rk away,| and mus|
|00003a00| 74 20 0d 09 62 65 20 63 | 68 61 6e 67 65 64 20 74 |t ..be c|hanged t|
|00003a10| 6f 20 75 73 65 20 4d 61 | 63 20 72 6f 75 74 69 6e |o use Ma|c routin|
|00003a20| 65 73 20 2a 2f 0d 0d 2f | 2a 20 69 66 20 74 68 65 |es */../|* if the|
|00003a30| 20 66 69 6c 65 6e 61 6d | 65 20 69 73 20 74 68 65 | filenam|e is the|
|00003a40| 20 73 61 6d 65 20 61 73 | 20 74 68 65 20 73 65 73 | same as| the ses|
|00003a50| 73 69 6f 6e 20 6e 61 6d | 65 2c 20 73 61 76 65 20 |sion nam|e, save |
|00003a60| 74 68 65 20 74 65 78 74 | 20 0d 09 62 75 66 66 65 |the text| ..buffe|
|00003a70| 72 20 69 6e 20 74 68 65 | 20 66 69 6c 65 20 62 65 |r in the| file be|
|00003a80| 66 6f 72 65 20 61 6e 20 | 75 70 6c 6f 61 64 20 74 |fore an |upload t|
|00003a90| 61 6b 65 73 20 70 6c 61 | 63 65 0d 2a 2f 0d 0d 74 |akes pla|ce.*/..t|
|00003aa0| 65 78 74 75 70 65 64 69 | 74 28 66 69 6c 65 6e 61 |extupedi|t(filena|
|00003ab0| 6d 65 29 0d 63 68 61 72 | 20 2a 20 66 69 6c 65 6e |me).char| * filen|
|00003ac0| 61 6d 65 3b 0d 7b 0d 09 | 46 49 4c 45 20 2a 74 65 |ame;.{..|FILE *te|
|00003ad0| 78 74 66 70 3b 0d 09 69 | 6e 74 20 77 72 69 74 65 |xtfp;..i|nt write|
|00003ae0| 63 6f 75 6e 74 3b 0d 09 | 63 68 61 72 20 66 69 6c |count;..|char fil|
|00003af0| 65 62 75 66 66 65 72 5b | 35 31 34 5d 3b 0d 09 75 |ebuffer[|514];..u|
|00003b00| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 20 74 65 |nsigned |short te|
|00003b10| 78 74 6c 65 6e 67 74 68 | 3b 0d 09 63 68 61 72 20 |xtlength|;..char |
|00003b20| 6d 61 63 66 69 6c 65 5b | 32 35 36 5d 3b 0d 0d 09 |macfile[|256];...|
|00003b30| 69 66 20 28 21 65 6d 64 | 70 2d 3e 65 64 69 74 6c |if (!emd|p->editl|
|00003b40| 6f 61 64 29 0d 09 09 72 | 65 74 75 72 6e 28 2d 31 |oad)...r|eturn(-1|
|00003b50| 29 3b 0d 0d 09 47 65 74 | 57 54 69 74 6c 65 28 65 |);...Get|WTitle(e|
|00003b60| 6d 64 70 2d 3e 74 65 78 | 74 77 69 6e 64 6f 77 2c |mdp->tex|twindow,|
|00003b70| 20 26 6d 61 63 66 69 6c | 65 5b 30 5d 29 3b 0d 09 | &macfil|e[0]);..|
|00003b80| 70 74 6f 63 28 26 6d 61 | 63 66 69 6c 65 5b 30 5d |ptoc(&ma|cfile[0]|
|00003b90| 29 3b 0d 20 09 69 66 20 | 28 73 74 72 63 6d 70 28 |);. .if |(strcmp(|
|00003ba0| 66 69 6c 65 6e 61 6d 65 | 2c 20 26 6d 61 63 66 69 |filename|, &macfi|
|00003bb0| 6c 65 5b 30 5d 29 20 3d | 3d 20 30 29 20 7b 0d 09 |le[0]) =|= 0) {..|
|00003bc0| 09 2f 2a 20 74 68 65 20 | 66 69 6c 65 6e 61 6d 65 |./* the |filename|
|00003bd0| 20 6d 61 74 63 68 65 73 | 20 74 68 65 20 74 65 78 | matches| the tex|
|00003be0| 74 20 77 69 6e 64 6f 77 | 20 6e 61 6d 65 20 22 53 |t window| name "S|
|00003bf0| 45 53 53 49 4f 4e 4e 41 | 4d 45 2e 65 64 69 74 22 |ESSIONNA|ME.edit"|
|00003c00| 2c 20 67 6f 20 66 6f 72 | 20 69 74 20 2a 2f 0d 09 |, go for| it */..|
|00003c10| 09 2f 2a 20 73 61 76 65 | 20 74 68 65 20 74 65 78 |./* save| the tex|
|00003c20| 74 20 62 75 66 66 65 72 | 20 69 6e 20 74 68 65 20 |t buffer| in the |
|00003c30| 66 69 6c 65 20 2a 2f 0d | 09 09 0d 09 09 69 66 20 |file */.|.....if |
|00003c40| 28 65 6d 64 70 2d 3e 65 | 64 69 74 75 70 77 72 61 |(emdp->e|ditupwra|
|00003c50| 70 29 0d 09 09 09 74 65 | 78 74 77 77 72 61 70 28 |p)....te|xtwwrap(|
|00003c60| 65 6d 64 70 29 3b 09 09 | 2f 2a 20 77 72 61 70 20 |emdp);..|/* wrap |
|00003c70| 74 65 78 74 20 77 69 74 | 68 20 43 61 72 72 69 61 |text wit|h Carria|
|00003c80| 67 65 20 52 65 74 75 72 | 6e 73 20 66 69 72 73 74 |ge Retur|ns first|
|00003c90| 20 2a 2f 0d 09 09 0d 09 | 09 48 4c 6f 63 6b 28 28 | */.....|.HLock((|
|00003ca0| 2a 65 6d 64 70 2d 3e 74 | 65 78 74 68 61 6e 64 29 |*emdp->t|exthand)|
|00003cb0| 2d 3e 68 54 65 78 74 29 | 3b 0d 09 09 0d 09 09 74 |->hText)|;......t|
|00003cc0| 65 78 74 6c 65 6e 67 74 | 68 20 3d 20 28 2a 65 6d |extlengt|h = (*em|
|00003cd0| 64 70 2d 3e 74 65 78 74 | 68 61 6e 64 29 2d 3e 74 |dp->text|hand)->t|
|00003ce0| 65 4c 65 6e 67 74 68 3b | 0d 09 09 74 65 78 74 66 |eLength;|...textf|
|00003cf0| 70 20 3d 20 66 6f 70 65 | 6e 28 66 69 6c 65 6e 61 |p = fope|n(filena|
|00003d00| 6d 65 2c 20 22 77 22 29 | 3b 0d 09 09 69 66 20 28 |me, "w")|;...if (|
|00003d10| 74 65 78 74 66 70 20 21 | 3d 20 4e 55 4c 4c 29 20 |textfp !|= NULL) |
|00003d20| 7b 20 0d 09 09 09 77 72 | 69 74 65 63 6f 75 6e 74 |{ ....wr|itecount|
|00003d30| 20 3d 20 66 77 72 69 74 | 65 28 2a 28 2a 65 6d 64 | = fwrit|e(*(*emd|
|00003d40| 70 2d 3e 74 65 78 74 68 | 61 6e 64 29 2d 3e 68 54 |p->texth|and)->hT|
|00003d50| 65 78 74 2c 20 31 2c 20 | 74 65 78 74 6c 65 6e 67 |ext, 1, |textleng|
|00003d60| 74 68 2c 20 74 65 78 74 | 66 70 29 3b 0d 09 09 09 |th, text|fp);....|
|00003d70| 69 66 20 28 77 72 69 74 | 65 63 6f 75 6e 74 20 21 |if (writ|ecount !|
|00003d80| 3d 20 74 65 78 74 6c 65 | 6e 67 74 68 29 20 7b 0d |= textle|ngth) {.|
|00003d90| 09 09 09 09 65 72 72 6f | 72 28 22 43 61 6e 27 74 |....erro|r("Can't|
|00003da0| 20 73 61 76 65 20 77 68 | 6f 6c 65 20 74 65 78 74 | save wh|ole text|
|00003db0| 20 69 6e 74 6f 20 75 70 | 6c 6f 61 64 20 66 69 6c | into up|load fil|
|00003dc0| 65 22 29 3b 0d 09 09 09 | 7d 0d 09 09 09 66 63 6c |e");....|}....fcl|
|00003dd0| 6f 73 65 28 74 65 78 74 | 66 70 29 3b 0d 09 09 7d |ose(text|fp);...}|
|00003de0| 0d 09 09 65 6c 73 65 0d | 09 09 09 65 72 72 6f 72 |...else.|...error|
|00003df0| 28 22 43 61 6e 27 74 20 | 6f 70 65 6e 20 75 70 6c |("Can't |open upl|
|00003e00| 6f 61 64 20 66 69 6c 65 | 20 74 6f 20 73 61 76 65 |oad file| to save|
|00003e10| 20 74 65 78 74 22 29 3b | 0d 0d 09 09 48 55 6e 6c | text");|....HUnl|
|00003e20| 6f 63 6b 28 28 2a 65 6d | 64 70 2d 3e 74 65 78 74 |ock((*em|dp->text|
|00003e30| 68 61 6e 64 29 2d 3e 68 | 54 65 78 74 29 3b 0d 09 |hand)->h|Text);..|
|00003e40| 7d 0d 09 72 65 74 75 72 | 6e 28 30 29 3b 0d 7d 0d |}..retur|n(0);.}.|
|00003e50| 0d 0d 2f 2a 20 69 66 20 | 74 68 65 20 66 69 6c 65 |../* if |the file|
|00003e60| 6e 61 6d 65 20 69 73 20 | 74 68 65 20 73 61 6d 65 |name is |the same|
|00003e70| 20 61 73 20 74 68 65 20 | 73 65 73 73 69 6f 6e 20 | as the |session |
|00003e80| 6e 61 6d 65 2c 20 6c 6f | 61 64 20 69 74 20 69 6e |name, lo|ad it in|
|00003e90| 74 6f 20 74 68 65 20 74 | 65 78 74 20 0d 09 62 75 |to the t|ext ..bu|
|00003ea0| 66 66 65 72 0d 2a 2f 0d | 0d 74 65 78 74 64 6f 77 |ffer.*/.|.textdow|
|00003eb0| 6e 65 64 69 74 28 66 69 | 6c 65 6e 61 6d 65 29 0d |nedit(fi|lename).|
|00003ec0| 63 68 61 72 20 2a 20 66 | 69 6c 65 6e 61 6d 65 3b |char * f|ilename;|
|00003ed0| 0d 7b 0d 09 63 68 61 72 | 20 6d 61 63 66 69 6c 65 |.{..char| macfile|
|00003ee0| 5b 32 35 36 5d 3b 0d 0d | 09 69 66 20 28 21 65 6d |[256];..|.if (!em|
|00003ef0| 64 70 2d 3e 65 64 69 74 | 6c 6f 61 64 29 0d 09 09 |dp->edit|load)...|
|00003f00| 72 65 74 75 72 6e 28 2d | 31 29 3b 0d 0d 09 47 65 |return(-|1);...Ge|
|00003f10| 74 57 54 69 74 6c 65 28 | 65 6d 64 70 2d 3e 74 65 |tWTitle(|emdp->te|
|00003f20| 78 74 77 69 6e 64 6f 77 | 2c 20 26 6d 61 63 66 69 |xtwindow|, &macfi|
|00003f30| 6c 65 5b 30 5d 29 3b 0d | 09 70 74 6f 63 28 26 6d |le[0]);.|.ptoc(&m|
|00003f40| 61 63 66 69 6c 65 5b 30 | 5d 29 3b 0d 20 09 69 66 |acfile[0|]);. .if|
|00003f50| 20 28 73 74 72 63 6d 70 | 28 66 69 6c 65 6e 61 6d | (strcmp|(filenam|
|00003f60| 65 2c 20 26 6d 61 63 66 | 69 6c 65 5b 30 5d 29 20 |e, &macf|ile[0]) |
|00003f70| 3d 3d 20 30 29 20 7b 0d | 09 09 2f 2a 20 74 68 65 |== 0) {.|../* the|
|00003f80| 20 66 69 6c 65 6e 61 6d | 65 20 6d 61 74 63 68 65 | filenam|e matche|
|00003f90| 73 20 22 53 45 53 53 49 | 4f 4e 4e 41 4d 45 2e 65 |s "SESSI|ONNAME.e|
|00003fa0| 64 69 74 22 2c 20 67 6f | 20 66 6f 72 20 69 74 20 |dit", go| for it |
|00003fb0| 2a 2f 0d 23 69 66 64 65 | 66 20 44 4f 57 4e 44 45 |*/.#ifde|f DOWNDE|
|00003fc0| 4c 45 54 45 0d 09 09 2f | 2a 20 77 65 20 70 72 6f |LETE.../|* we pro|
|00003fd0| 62 61 62 6c 79 20 64 6f | 6e 27 74 20 77 61 6e 74 |bably do|n't want|
|00003fe0| 20 74 6f 20 61 75 74 6f | 6d 61 74 69 63 61 6c 6c | to auto|maticall|
|00003ff0| 79 20 64 65 6c 65 74 65 | 20 74 68 65 20 63 75 72 |y delete| the cur|
|00004000| 72 65 6e 74 20 74 65 78 | 74 20 2a 2f 0d 09 09 2f |rent tex|t */.../|
|00004010| 2a 20 66 69 72 73 74 20 | 64 65 6c 65 74 65 20 74 |* first |delete t|
|00004020| 68 65 20 63 75 72 72 65 | 6e 74 20 74 65 78 74 20 |he curre|nt text |
|00004030| 2a 2f 0d 09 09 74 65 73 | 65 74 73 65 6c 28 20 28 |*/...tes|etsel( (|
|00004040| 6c 6f 6e 67 29 20 30 2c | 20 28 6c 6f 6e 67 29 20 |long) 0,| (long) |
|00004050| 28 2a 65 6d 64 70 2d 3e | 74 65 78 74 68 61 6e 64 |(*emdp->|texthand|
|00004060| 29 2d 3e 74 65 4c 65 6e | 67 74 68 2c 20 65 6d 64 |)->teLen|gth, emd|
|00004070| 70 2d 3e 74 65 78 74 68 | 61 6e 64 29 3b 0d 09 09 |p->texth|and);...|
|00004080| 54 45 44 65 6c 65 74 65 | 28 65 6d 64 70 2d 3e 74 |TEDelete|(emdp->t|
|00004090| 65 78 74 68 61 6e 64 29 | 3b 0d 09 09 74 65 78 74 |exthand)|;...text|
|000040a0| 63 74 6c 75 70 64 28 65 | 6d 64 70 29 3b 0d 09 09 |ctlupd(e|mdp);...|
|000040b0| 53 65 6c 56 69 65 77 28 | 65 6d 64 70 29 3b 0d 23 |SelView(|emdp);.#|
|000040c0| 65 6e 64 69 66 09 09 0d | 09 09 74 65 78 74 77 6c |endif...|..textwl|
|000040d0| 6f 61 64 28 66 69 6c 65 | 6e 61 6d 65 29 3b 0d 09 |oad(file|name);..|
|000040e0| 09 69 66 20 28 65 6d 64 | 70 2d 3e 65 64 69 74 64 |.if (emd|p->editd|
|000040f0| 6f 77 6e 77 72 61 70 29 | 0d 09 09 09 74 65 78 74 |ownwrap)|....text|
|00004100| 77 75 6e 77 72 61 70 28 | 65 6d 64 70 29 3b 09 0d |wunwrap(|emdp);..|
|00004110| 09 09 09 09 2f 2a 20 65 | 6c 69 6d 69 6e 61 74 65 |..../* e|liminate|
|00004120| 20 6d 6f 73 74 20 43 61 | 72 72 69 61 67 65 20 52 | most Ca|rriage R|
|00004130| 65 74 75 72 6e 73 20 69 | 6e 20 74 65 78 74 20 2a |eturns i|n text *|
|00004140| 2f 0d 09 7d 0d 09 72 65 | 74 75 72 6e 28 30 29 3b |/..}..re|turn(0);|
|00004150| 0d 7d 0d 0d 2f 2a 20 61 | 70 70 65 6e 64 20 61 20 |.}../* a|ppend a |
|00004160| 66 69 6c 65 20 74 6f 20 | 74 68 65 20 2e 65 64 69 |file to |the .edi|
|00004170| 74 20 77 69 6e 64 6f 77 | 20 2a 2f 0d 0d 74 65 78 |t window| */..tex|
|00004180| 74 77 6c 6f 61 64 28 66 | 69 6c 65 6e 61 6d 65 29 |twload(f|ilename)|
|00004190| 20 0d 63 68 61 72 20 2a | 66 69 6c 65 6e 61 6d 65 | .char *|filename|
|000041a0| 3b 0d 7b 0d 09 46 49 4c | 45 20 2a 74 65 78 74 66 |;.{..FIL|E *textf|
|000041b0| 70 3b 0d 09 69 6e 74 20 | 72 65 61 64 63 6f 75 6e |p;..int |readcoun|
|000041c0| 74 3b 0d 09 6c 6f 6e 67 | 20 72 65 61 64 74 6f 74 |t;..long| readtot|
|000041d0| 61 6c 3b 0d 09 63 68 61 | 72 20 66 69 6c 65 62 75 |al;..cha|r filebu|
|000041e0| 66 66 65 72 5b 35 31 34 | 5d 3b 0d 0d 09 74 65 78 |ffer[514|];...tex|
|000041f0| 74 66 70 20 3d 20 66 6f | 70 65 6e 28 66 69 6c 65 |tfp = fo|pen(file|
|00004200| 6e 61 6d 65 2c 20 22 72 | 22 29 3b 0d 09 69 66 20 |name, "r|");..if |
|00004210| 28 74 65 78 74 66 70 20 | 21 3d 20 4e 55 4c 4c 29 |(textfp |!= NULL)|
|00004220| 20 7b 20 0d 09 09 72 65 | 61 64 74 6f 74 61 6c 20 | { ...re|adtotal |
|00004230| 3d 20 30 3b 0d 09 09 77 | 68 69 6c 65 20 28 54 52 |= 0;...w|hile (TR|
|00004240| 55 45 29 20 7b 0d 09 09 | 09 72 65 61 64 63 6f 75 |UE) {...|.readcou|
|00004250| 6e 74 20 3d 20 66 72 65 | 61 64 28 26 66 69 6c 65 |nt = fre|ad(&file|
|00004260| 62 75 66 66 65 72 5b 30 | 5d 2c 20 31 2c 20 35 31 |buffer[0|], 1, 51|
|00004270| 32 2c 20 74 65 78 74 66 | 70 29 3b 0d 09 09 09 72 |2, textf|p);....r|
|00004280| 65 61 64 74 6f 74 61 6c | 20 2b 3d 20 72 65 61 64 |eadtotal| += read|
|00004290| 63 6f 75 6e 74 3b 0d 09 | 09 09 69 66 20 28 72 65 |count;..|..if (re|
|000042a0| 61 64 63 6f 75 6e 74 20 | 3d 3d 20 30 29 20 7b 0d |adcount |== 0) {.|
|000042b0| 09 09 09 09 2f 2a 20 77 | 65 27 76 65 20 72 65 61 |..../* w|e've rea|
|000042c0| 64 20 74 68 65 20 77 68 | 6f 6c 65 20 66 69 6c 65 |d the wh|ole file|
|000042d0| 20 6f 72 20 63 61 6e 27 | 74 20 72 65 61 64 20 61 | or can'|t read a|
|000042e0| 6e 79 20 6d 6f 72 65 20 | 2a 2f 0d 09 09 09 09 62 |ny more |*/.....b|
|000042f0| 72 65 61 6b 3b 0d 09 09 | 09 7d 0d 09 09 09 74 65 |reak;...|.}....te|
|00004300| 78 74 77 61 70 70 65 6e | 64 28 26 66 69 6c 65 62 |xtwappen|d(&fileb|
|00004310| 75 66 66 65 72 5b 30 5d | 2c 20 28 6c 6f 6e 67 29 |uffer[0]|, (long)|
|00004320| 20 72 65 61 64 63 6f 75 | 6e 74 29 3b 0d 09 09 7d | readcou|nt);...}|
|00004330| 0d 09 09 66 63 6c 6f 73 | 65 28 74 65 78 74 66 70 |...fclos|e(textfp|
|00004340| 29 3b 0d 09 09 69 66 20 | 28 72 65 61 64 74 6f 74 |);...if |(readtot|
|00004350| 61 6c 20 3e 20 33 32 35 | 30 30 29 20 0d 09 09 09 |al > 325|00) ....|
|00004360| 65 72 72 6f 72 28 22 43 | 6f 75 6c 64 6e 27 74 20 |error("C|ouldn't |
|00004370| 72 65 61 64 20 74 68 65 | 20 77 68 6f 6c 65 20 66 |read the| whole f|
|00004380| 69 6c 65 20 69 6e 74 6f | 20 2e 65 64 69 74 20 28 |ile into| .edit (|
|00004390| 3e 20 33 32 2c 35 30 30 | 20 63 68 61 72 61 63 74 |> 32,500| charact|
|000043a0| 65 72 73 29 22 29 3b 0d | 09 09 70 75 74 61 63 74 |ers)");.|..putact|
|000043b0| 69 6f 6e 28 52 53 4c 54 | 5f 45 4d 43 2c 20 45 4d |ion(RSLT|_EMC, EM|
|000043c0| 5f 45 44 49 54 29 3b 09 | 2f 2a 20 62 72 69 6e 67 |_EDIT);.|/* bring|
|000043d0| 20 75 70 20 74 68 65 20 | 65 64 69 74 20 77 69 6e | up the |edit win|
|000043e0| 64 6f 77 20 2a 2f 0d 09 | 7d 0d 09 65 6c 73 65 0d |dow */..|}..else.|
|000043f0| 09 09 65 72 72 6f 72 28 | 22 43 61 6e 27 74 20 6c |..error(|"Can't l|
|00004400| 6f 61 64 20 66 69 6c 65 | 20 69 6e 74 6f 20 74 65 |oad file| into te|
|00004410| 78 74 20 77 69 6e 64 6f | 77 22 29 3b 0d 7d 0d 0d |xt windo|w");.}..|
|00004420| 23 65 6c 73 65 0d 09 2f | 2a 20 61 72 65 20 66 69 |#else../|* are fi|
|00004430| 6c 65 20 63 6f 6d 70 61 | 74 69 62 69 6c 69 74 79 |le compa|tibility|
|00004440| 20 72 6f 75 74 69 6e 65 | 73 20 69 6e 20 70 6c 61 | routine|s in pla|
|00004450| 63 65 20 3f 20 2a 2f 0d | 0d 74 65 78 74 75 70 65 |ce ? */.|.textupe|
|00004460| 64 69 74 28 29 0d 7b 0d | 7d 0d 0d 74 65 78 74 64 |dit().{.|}..textd|
|00004470| 6f 77 6e 65 64 69 74 28 | 29 0d 7b 0d 7d 0d 0d 23 |ownedit(|).{.}..#|
|00004480| 65 6e 64 69 66 0d 0d 23 | 65 6c 73 65 0d 09 2f 2a |endif..#|else../*|
|00004490| 20 6e 6f 74 20 55 53 45 | 54 45 58 54 57 49 4e 44 | not USE|TEXTWIND|
|000044a0| 4f 57 53 20 2a 2f 0d 74 | 65 78 74 77 69 6e 69 74 |OWS */.t|extwinit|
|000044b0| 28 29 0d 7b 0d 7d 0d 0d | 74 65 78 74 77 73 69 7a |().{.}..|textwsiz|
|000044c0| 65 28 29 0d 7b 0d 7d 0d | 0d 2f 2a 20 6e 6f 20 74 |e().{.}.|./* no t|
|000044d0| 65 78 74 20 77 69 6e 64 | 6f 77 73 2c 20 64 6f 20 |ext wind|ows, do |
|000044e0| 6e 6f 74 68 69 6e 67 20 | 2a 2f 0d 0d 74 65 78 74 |nothing |*/..text|
|000044f0| 75 70 65 64 69 74 28 29 | 0d 7b 0d 7d 0d 0d 74 65 |upedit()|.{.}..te|
|00004500| 78 74 64 6f 77 6e 65 64 | 69 74 28 29 0d 7b 0d 7d |xtdowned|it().{.}|
|00004510| 0d 0d 2f 2a 20 77 68 65 | 6e 20 74 65 78 74 20 77 |../* whe|n text w|
|00004520| 69 6e 64 6f 77 73 20 61 | 72 65 20 64 69 73 61 62 |indows a|re disab|
|00004530| 6c 65 64 2c 20 61 70 70 | 65 6e 64 20 6f 70 65 72 |led, app|end oper|
|00004540| 61 74 69 6f 6e 73 20 67 | 6f 20 69 6e 74 6f 20 74 |ations g|o into t|
|00004550| 68 65 20 63 6c 69 70 62 | 6f 61 72 64 20 2a 2f 0d |he clipb|oard */.|
|00004560| 0d 74 65 78 74 77 61 70 | 70 65 6e 64 28 74 65 78 |.textwap|pend(tex|
|00004570| 74 70 2c 20 6c 65 6e 67 | 74 68 29 0d 63 68 61 72 |tp, leng|th).char|
|00004580| 20 2a 20 74 65 78 74 70 | 3b 0d 6c 6f 6e 67 20 6c | * textp|;.long l|
|00004590| 65 6e 67 74 68 3b 0d 7b | 0d 09 70 75 74 74 65 78 |ength;.{|..puttex|
|000045a0| 74 73 63 72 61 70 28 74 | 65 78 74 70 2c 20 6c 65 |tscrap(t|extp, le|
|000045b0| 6e 67 74 68 29 3b 0d 7d | 0d 0d 0d 74 65 78 74 63 |ngth);.}|...textc|
|000045c0| 74 6c 75 70 64 28 74 77 | 70 29 0d 73 74 72 75 63 |tlupd(tw|p).struc|
|000045d0| 74 20 77 69 6e 64 73 20 | 2a 20 74 77 70 3b 0d 7b |t winds |* twp;.{|
|000045e0| 0d 7d 0d 0d 0d 74 65 78 | 74 77 63 6f 70 79 28 74 |.}...tex|twcopy(t|
|000045f0| 77 70 29 0d 73 74 72 75 | 63 74 20 77 69 6e 64 73 |wp).stru|ct winds|
|00004600| 20 2a 20 74 77 70 3b 0d | 7b 0d 7d 0d 0d 74 65 78 | * twp;.|{.}..tex|
|00004610| 74 77 70 61 73 74 65 28 | 74 77 70 29 0d 73 74 72 |twpaste(|twp).str|
|00004620| 75 63 74 20 77 69 6e 64 | 73 20 2a 20 74 77 70 3b |uct wind|s * twp;|
|00004630| 0d 7b 0d 7d 0d 0d 0d 74 | 65 78 74 77 63 75 74 28 |.{.}...t|extwcut(|
|00004640| 74 77 70 29 0d 73 74 72 | 75 63 74 20 77 69 6e 64 |twp).str|uct wind|
|00004650| 73 20 2a 20 74 77 70 3b | 0d 7b 0d 7d 0d 0d 74 65 |s * twp;|.{.}..te|
|00004660| 78 74 77 77 72 61 70 28 | 74 77 70 29 0d 73 74 72 |xtwwrap(|twp).str|
|00004670| 75 63 74 20 77 69 6e 64 | 73 20 2a 20 74 77 70 3b |uct wind|s * twp;|
|00004680| 0d 7b 0d 7d 0d 0d 74 65 | 78 74 77 75 6e 77 72 61 |.{.}..te|xtwunwra|
|00004690| 70 28 74 77 70 29 0d 73 | 74 72 75 63 74 20 77 69 |p(twp).s|truct wi|
|000046a0| 6e 64 73 20 2a 20 74 77 | 70 3b 0d 7b 0d 7d 0d 0d |nds * tw|p;.{.}..|
|000046b0| 74 65 73 65 74 73 65 6c | 28 29 0d 7b 0d 7d 0d 0d |tesetsel|().{.}..|
|000046c0| 23 65 6e 64 69 66 0d 0d | 2f 2a 20 73 65 74 20 74 |#endif..|/* set t|
|000046d0| 68 65 20 73 65 6c 65 63 | 74 69 6f 6e 20 74 6f 20 |he selec|tion to |
|000046e0| 74 68 65 20 65 6e 64 20 | 6f 66 20 74 68 65 20 74 |the end |of the t|
|000046f0| 65 78 74 20 61 6e 64 20 | 6a 75 6d 70 20 74 6f 20 |ext and |jump to |
|00004700| 69 74 20 2a 2f 0d 0d 74 | 65 78 74 77 67 6f 74 6f |it */..t|extwgoto|
|00004710| 65 6e 64 28 74 77 70 29 | 0d 73 74 72 75 63 74 20 |end(twp)|.struct |
|00004720| 77 69 6e 64 73 20 2a 20 | 74 77 70 3b 0d 7b 0d 09 |winds * |twp;.{..|
|00004730| 74 65 73 65 74 73 65 6c | 28 20 28 6c 6f 6e 67 29 |tesetsel|( (long)|
|00004740| 20 28 2a 74 77 70 2d 3e | 74 65 78 74 68 61 6e 64 | (*twp->|texthand|
|00004750| 29 2d 3e 74 65 4c 65 6e | 67 74 68 2c 20 0d 09 09 |)->teLen|gth, ...|
|00004760| 28 6c 6f 6e 67 29 20 28 | 2a 74 77 70 2d 3e 74 65 |(long) (|*twp->te|
|00004770| 78 74 68 61 6e 64 29 2d | 3e 74 65 4c 65 6e 67 74 |xthand)-|>teLengt|
|00004780| 68 2c 20 0d 09 09 74 77 | 70 2d 3e 74 65 78 74 68 |h, ...tw|p->texth|
|00004790| 61 6e 64 29 3b 0d 09 53 | 63 72 6f 6c 6c 54 6f 4c |and);..S|crollToL|
|000047a0| 69 6e 65 28 74 77 70 2c | 20 53 63 72 6f 6c 6c 4d |ine(twp,| ScrollM|
|000047b0| 61 78 28 74 77 70 29 29 | 3b 0d 7d 0d 0d 0d 23 69 |ax(twp))|;.}...#i|
|000047c0| 66 64 65 66 20 55 53 45 | 54 45 58 54 57 49 4e 44 |fdef USE|TEXTWIND|
|000047d0| 4f 57 53 0d 2f 2a 20 61 | 70 70 65 6e 64 20 74 68 |OWS./* a|ppend th|
|000047e0| 65 20 6b 65 79 6d 61 70 | 20 74 6f 20 74 68 65 20 |e keymap| to the |
|000047f0| 74 65 78 74 20 77 69 6e | 64 6f 77 20 2a 2f 0d 0d |text win|dow */..|
|00004800| 23 64 65 66 69 6e 65 20 | 58 54 45 58 54 09 35 30 |#define |XTEXT.50|
|00004810| 30 0d 23 64 65 66 69 6e | 65 20 4e 45 47 20 28 2d |0.#defin|e NEG (-|
|00004820| 31 29 0d 0d 63 68 61 72 | 20 6b 78 61 70 70 73 74 |1)..char| kxappst|
|00004830| 61 72 74 5b 5d 20 3d 20 | 22 5c 72 5c 72 4b 65 79 |art[] = |"\r\rKey|
|00004840| 20 4d 61 63 72 6f 20 6c | 69 73 74 3a 5c 72 22 3b | Macro l|ist:\r";|
|00004850| 0d 63 68 61 72 20 6b 78 | 61 70 70 65 6e 64 5b 5d |.char kx|append[]|
|00004860| 20 3d 20 22 5c 72 5c 72 | 45 6e 64 20 6f 66 20 4b | = "\r\r|End of K|
|00004870| 65 79 20 4d 61 63 72 6f | 20 6c 69 73 74 5c 72 5c |ey Macro| list\r\|
|00004880| 72 22 3b 0d 0d 6b 65 79 | 78 61 70 70 65 6e 64 28 |r";..key|xappend(|
|00004890| 29 0d 7b 0d 09 54 45 48 | 61 6e 64 6c 65 20 74 65 |).{..TEH|andle te|
|000048a0| 78 74 68 61 6e 64 20 3d | 20 6b 65 79 64 70 2d 3e |xthand =| keydp->|
|000048b0| 74 65 78 74 68 61 6e 64 | 3b 0d 09 6c 6f 6e 67 20 |texthand|;..long |
|000048c0| 6c 65 6e 67 74 68 3b 0d | 09 75 6e 73 69 67 6e 65 |length;.|.unsigne|
|000048d0| 64 20 63 68 61 72 20 74 | 68 65 74 65 78 74 5b 58 |d char t|hetext[X|
|000048e0| 54 45 58 54 20 2b 20 36 | 5d 3b 0d 09 45 76 65 6e |TEXT + 6|];..Even|
|000048f0| 74 52 65 63 6f 72 64 20 | 61 6e 65 76 65 6e 74 3b |tRecord |anevent;|
|00004900| 0d 09 73 74 72 75 63 74 | 20 6b 65 79 78 6c 69 73 |..struct| keyxlis|
|00004910| 74 20 2a 20 6b 65 79 78 | 70 3b 0d 09 6c 6f 6e 67 |t * keyx|p;..long|
|00004920| 20 6b 65 79 78 69 64 3b | 0d 09 73 68 6f 72 74 20 | keyxid;|..short |
|00004930| 64 6b 65 79 63 6f 64 65 | 2c 20 6d 6f 64 69 66 69 |dkeycode|, modifi|
|00004940| 65 72 73 3b 0d 09 75 6e | 73 69 67 6e 65 64 20 63 |ers;..un|signed c|
|00004950| 68 61 72 20 2a 20 61 63 | 74 70 74 72 3b 0d 09 75 |har * ac|tptr;..u|
|00004960| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 2a 20 74 |nsigned |char * t|
|00004970| 65 78 74 65 6e 64 3b 0d | 09 73 74 72 75 63 74 20 |extend;.|.struct |
|00004980| 74 6f 6b 65 6e 20 2a 20 | 6b 65 79 61 63 74 3b 0d |token * |keyact;.|
|00004990| 09 69 6e 74 20 63 6f 75 | 6e 74 3b 0d 09 0d 09 67 |.int cou|nt;....g|
|000049a0| 65 74 63 6f 6e 74 65 78 | 74 28 6b 65 79 64 70 29 |etcontex|t(keydp)|
|000049b0| 3b 09 09 09 2f 2a 20 74 | 65 78 74 77 61 70 70 65 |;.../* t|extwappe|
|000049c0| 6e 64 28 29 20 75 73 65 | 73 20 65 6d 64 70 20 2a |nd() use|s emdp *|
|000049d0| 2f 0d 09 0d 09 73 74 72 | 63 70 79 28 26 74 68 65 |/....str|cpy(&the|
|000049e0| 74 65 78 74 5b 30 5d 2c | 20 22 5c 72 5c 74 22 29 |text[0],| "\r\t")|
|000049f0| 3b 0d 09 09 2f 2a 20 61 | 20 63 61 72 72 69 61 67 |;.../* a| carriag|
|00004a00| 65 20 20 72 65 74 75 72 | 6e 20 26 20 74 61 62 20 |e retur|n & tab |
|00004a10| 73 74 61 72 74 73 20 6f | 66 66 20 74 68 65 20 6c |starts o|ff the l|
|00004a20| 69 6e 65 20 2a 2f 0d 09 | 74 65 78 74 77 61 70 70 |ine */..|textwapp|
|00004a30| 65 6e 64 28 26 6b 78 61 | 70 70 73 74 61 72 74 5b |end(&kxa|ppstart[|
|00004a40| 30 5d 2c 20 28 6c 6f 6e | 67 29 20 73 74 72 6c 65 |0], (lon|g) strle|
|00004a50| 6e 28 26 6b 78 61 70 70 | 73 74 61 72 74 5b 30 5d |n(&kxapp|start[0]|
|00004a60| 29 29 3b 0d 09 0d 09 66 | 6f 72 20 28 6b 65 79 78 |));....f|or (keyx|
|00004a70| 70 20 3d 20 6b 65 79 64 | 70 2d 3e 6b 65 79 78 68 |p = keyd|p->keyxh|
|00004a80| 65 61 64 3b 20 6b 65 79 | 78 70 20 21 3d 20 4e 55 |ead; key|xp != NU|
|00004a90| 4c 4c 3b 20 6b 65 79 78 | 70 20 3d 20 6b 65 79 78 |LL; keyx|p = keyx|
|00004aa0| 70 2d 3e 6e 65 78 74 6b | 65 79 29 20 7b 0d 09 09 |p->nextk|ey) {...|
|00004ab0| 6b 65 79 78 69 64 20 3d | 20 28 28 73 74 72 75 63 |keyxid =| ((struc|
|00004ac0| 74 20 6b 65 79 61 63 74 | 6c 69 73 74 20 2a 29 20 |t keyact|list *) |
|00004ad0| 28 2a 6b 65 79 78 70 2d | 3e 68 6b 65 79 61 63 74 |(*keyxp-|>hkeyact|
|00004ae0| 29 29 2d 3e 6b 65 79 69 | 64 3b 0d 0d 09 09 6d 6f |))->keyi|d;....mo|
|00004af0| 64 69 66 69 65 72 73 20 | 3d 20 28 28 6b 65 79 78 |difiers |= ((keyx|
|00004b00| 69 64 20 3e 3e 20 31 36 | 29 20 26 20 30 78 66 66 |id >> 16|) & 0xff|
|00004b10| 66 66 29 3b 0d 09 09 64 | 6b 65 79 63 6f 64 65 20 |ff);...d|keycode |
|00004b20| 3d 20 28 6b 65 79 78 69 | 64 20 26 20 30 78 66 66 |= (keyxi|d & 0xff|
|00004b30| 66 66 29 20 3e 3e 20 38 | 3b 0d 0d 09 09 2f 2a 20 |ff) >> 8|;..../* |
|00004b40| 6e 6f 77 20 64 75 6d 70 | 20 74 68 65 20 63 6f 64 |now dump| the cod|
|00004b50| 65 73 20 66 6f 72 20 69 | 74 20 2a 2f 0d 09 09 63 |es for i|t */...c|
|00004b60| 6f 75 6e 74 20 3d 20 6b | 65 79 78 70 2d 3e 61 63 |ount = k|eyxp->ac|
|00004b70| 74 6c 65 6e 3b 0d 09 09 | 6b 65 79 61 63 74 20 3d |tlen;...|keyact =|
|00004b80| 20 26 28 28 73 74 72 75 | 63 74 20 6b 65 79 61 63 | &((stru|ct keyac|
|00004b90| 74 6c 69 73 74 20 2a 29 | 20 28 2a 6b 65 79 78 70 |tlist *)| (*keyxp|
|00004ba0| 2d 3e 68 6b 65 79 61 63 | 74 29 29 2d 3e 61 63 74 |->hkeyac|t))->act|
|00004bb0| 5b 30 5d 3b 0d 09 09 61 | 63 74 70 74 72 20 3d 20 |[0];...a|ctptr = |
|00004bc0| 26 74 68 65 74 65 78 74 | 5b 32 5d 3b 0d 09 09 0d |&thetext|[2];....|
|00004bd0| 09 09 66 6f 72 20 28 74 | 65 78 74 65 6e 64 20 3d |..for (t|extend =|
|00004be0| 20 26 74 68 65 74 65 78 | 74 5b 32 5d 20 2b 20 58 | &thetex|t[2] + X|
|00004bf0| 54 45 58 54 3b 20 63 6f | 75 6e 74 2d 2d 3b 20 6b |TEXT; co|unt--; k|
|00004c00| 65 79 61 63 74 2b 2b 29 | 20 7b 0d 09 09 09 69 66 |eyact++)| {....if|
|00004c10| 20 28 20 28 6c 65 6e 67 | 74 68 20 3d 20 61 63 74 | ( (leng|th = act|
|00004c20| 64 65 63 6f 64 65 28 61 | 63 74 70 74 72 2c 20 74 |decode(a|ctptr, t|
|00004c30| 65 78 74 65 6e 64 2c 20 | 6b 65 79 61 63 74 2c 20 |extend, |keyact, |
|00004c40| 46 41 4c 53 45 29 29 20 | 3d 3d 20 4e 45 47 29 0d |FALSE)) |== NEG).|
|00004c50| 09 09 09 09 2f 2a 20 65 | 72 72 6f 72 20 64 65 63 |..../* e|rror dec|
|00004c60| 6f 64 69 6e 67 2d 2d 73 | 68 6f 75 6c 64 20 61 6c |oding--s|hould al|
|00004c70| 65 72 74 20 74 68 61 74 | 20 61 74 20 65 6e 64 3f |ert that| at end?|
|00004c80| 20 2a 2f 0d 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 | */.....|break;..|
|00004c90| 09 09 65 6c 73 65 0d 09 | 09 09 09 61 63 74 70 74 |..else..|...actpt|
|00004ca0| 72 20 2b 3d 20 6c 65 6e | 67 74 68 3b 0d 09 09 7d |r += len|gth;...}|
|00004cb0| 0d 09 09 0d 09 09 6c 65 | 6e 67 74 68 20 3d 20 61 |......le|ngth = a|
|00004cc0| 63 74 70 74 72 20 2d 20 | 26 74 68 65 74 65 78 74 |ctptr - |&thetext|
|00004cd0| 5b 32 5d 3b 0d 09 09 0d | 09 09 2a 61 63 74 70 74 |[2];....|..*actpt|
|00004ce0| 72 2b 2b 20 3d 20 27 20 | 27 3b 09 09 09 0d 09 09 |r++ = ' |';......|
|00004cf0| 2f 2a 20 6d 61 6b 65 20 | 73 75 72 65 20 64 69 61 |/* make |sure dia|
|00004d00| 63 72 69 74 69 63 20 68 | 61 73 20 73 6f 6d 65 74 |critic h|as somet|
|00004d10| 68 69 6e 67 20 6e 69 63 | 65 20 74 6f 20 73 69 74 |hing nic|e to sit|
|00004d20| 20 6f 6e 20 2a 2f 0d 09 | 09 2a 61 63 74 70 74 72 | on */..|.*actptr|
|00004d30| 2b 2b 20 3d 20 54 41 42 | 3b 0d 09 09 09 2f 2a 20 |++ = TAB|;..../* |
|00004d40| 61 64 64 20 61 20 74 61 | 62 20 66 6f 72 20 66 6f |add a ta|b for fo|
|00004d50| 72 6d 61 74 74 69 6e 67 | 20 2a 2f 0d 09 09 09 0d |rmatting| */.....|
|00004d60| 09 09 2f 2a 20 67 69 76 | 65 20 74 68 65 20 6b 65 |../* giv|e the ke|
|00004d70| 79 20 61 20 6e 61 6d 65 | 20 2a 2f 0d 09 09 6e 61 |y a name| */...na|
|00004d80| 6d 65 6b 65 79 28 61 63 | 74 70 74 72 2c 20 64 6b |mekey(ac|tptr, dk|
|00004d90| 65 79 63 6f 64 65 2c 20 | 6d 6f 64 69 66 69 65 72 |eycode, |modifier|
|00004da0| 73 29 3b 0d 09 09 61 63 | 74 70 74 72 20 2b 3d 20 |s);...ac|tptr += |
|00004db0| 73 74 72 6c 65 6e 28 61 | 63 74 70 74 72 29 3b 0d |strlen(a|ctptr);.|
|00004dc0| 0d 09 09 69 66 20 28 6c | 65 6e 67 74 68 20 3d 3d |...if (l|ength ==|
|00004dd0| 20 31 29 20 7b 0d 09 09 | 09 2f 2a 20 69 66 20 74 | 1) {...|./* if t|
|00004de0| 68 65 20 63 6f 64 65 20 | 77 61 73 20 6a 75 73 74 |he code |was just|
|00004df0| 20 61 20 73 69 6e 67 6c | 65 20 63 68 61 72 61 63 | a singl|e charac|
|00004e00| 74 65 72 2c 20 67 69 76 | 65 20 64 65 63 69 6d 61 |ter, giv|e decima|
|00004e10| 6c 20 65 71 75 69 76 61 | 6c 65 6e 74 20 61 6c 73 |l equiva|lent als|
|00004e20| 6f 20 2a 2f 0d 09 09 09 | 2a 61 63 74 70 74 72 2b |o */....|*actptr+|
|00004e30| 2b 20 3d 20 54 41 42 3b | 0d 09 09 09 2a 61 63 74 |+ = TAB;|....*act|
|00004e40| 70 74 72 2b 2b 20 3d 20 | 27 5c 5c 27 3b 0d 09 09 |ptr++ = |'\\';...|
|00004e50| 09 64 65 63 74 72 61 6e | 73 28 61 63 74 70 74 72 |.dectran|s(actptr|
|00004e60| 2c 20 74 68 65 74 65 78 | 74 5b 32 5d 29 3b 0d 09 |, thetex|t[2]);..|
|00004e70| 09 09 61 63 74 70 74 72 | 20 2b 3d 20 33 3b 09 2f |..actptr| += 3;./|
|00004e80| 2a 20 33 20 63 68 61 72 | 61 63 74 65 72 73 20 6a |* 3 char|acters j|
|00004e90| 75 73 74 20 61 64 64 65 | 64 2e 2e 2e 20 2a 2f 0d |ust adde|d... */.|
|00004ea0| 09 09 7d 0d 09 09 0d 09 | 09 6c 65 6e 67 74 68 20 |..}.....|.length |
|00004eb0| 3d 20 61 63 74 70 74 72 | 20 2d 20 26 74 68 65 74 |= actptr| - &thet|
|00004ec0| 65 78 74 5b 30 5d 3b 0d | 0d 09 09 69 66 20 28 21 |ext[0];.|...if (!|
|00004ed0| 20 6d 65 6d 74 65 73 74 | 28 6c 65 6e 67 74 68 2c | memtest|(length,|
|00004ee0| 20 22 74 6f 20 64 75 6d | 70 20 6b 65 79 20 6d 61 | "to dum|p key ma|
|00004ef0| 63 72 6f 73 22 29 29 0d | 09 09 09 2f 2a 20 6f 75 |cros")).|.../* ou|
|00004f00| 74 20 6f 66 20 6d 65 6d | 6f 72 79 20 2a 2f 0d 09 |t of mem|ory */..|
|00004f10| 09 09 62 72 65 61 6b 3b | 0d 09 09 0d 09 09 74 65 |..break;|......te|
|00004f20| 78 74 77 61 70 70 65 6e | 64 28 26 74 68 65 74 65 |xtwappen|d(&thete|
|00004f30| 78 74 5b 30 5d 2c 20 28 | 6c 6f 6e 67 29 20 6c 65 |xt[0], (|long) le|
|00004f40| 6e 67 74 68 29 3b 0d 09 | 09 09 2f 2a 20 73 74 61 |ngth);..|../* sta|
|00004f50| 72 74 73 20 77 69 74 68 | 20 30 20 74 6f 20 69 6e |rts with| 0 to in|
|00004f60| 73 65 72 74 20 61 20 43 | 52 20 2a 2f 0d 0d 09 7d |sert a C|R */...}|
|00004f70| 0d 09 74 65 78 74 77 61 | 70 70 65 6e 64 28 26 6b |..textwa|ppend(&k|
|00004f80| 78 61 70 70 65 6e 64 5b | 30 5d 2c 20 28 6c 6f 6e |xappend[|0], (lon|
|00004f90| 67 29 20 73 74 72 6c 65 | 6e 28 26 6b 78 61 70 70 |g) strle|n(&kxapp|
|00004fa0| 65 6e 64 5b 30 5d 29 29 | 3b 0d 7d 0d 0d 0d 23 65 |end[0]))|;.}...#e|
|00004fb0| 6e 64 69 66 0d 2f 2a 20 | 0d 20 2a 20 20 64 69 73 |ndif./* |. * dis|
|00004fc0| 70 6c 61 79 20 74 65 78 | 74 20 69 6e 20 61 20 74 |play tex|t in a t|
|00004fd0| 65 78 74 20 77 69 6e 64 | 6f 77 3b 20 62 6f 74 68 |ext wind|ow; both|
|00004fe0| 20 61 72 65 20 74 61 6b | 65 6e 20 66 72 6f 6d 20 | are tak|en from |
|00004ff0| 72 65 73 6f 75 72 63 65 | 20 66 69 6c 65 2c 20 77 |resource| file, w|
|00005000| 69 74 68 20 74 68 65 20 | 0d 20 2a 20 20 61 73 73 |ith the |. * ass|
|00005010| 75 6d 70 74 69 6f 6e 20 | 74 68 65 20 69 64 20 6e |umption |the id n|
|00005020| 75 6d 62 65 72 20 69 73 | 20 74 68 65 20 73 61 6d |umber is| the sam|
|00005030| 65 20 66 6f 72 20 62 6f | 74 68 0d 20 2a 2f 0d 0d |e for bo|th. */..|
|00005040| 68 65 6c 70 74 65 78 74 | 77 69 6e 64 6f 77 28 72 |helptext|window(r|
|00005050| 65 73 69 64 29 0d 7b 0d | 09 6c 6f 6e 67 20 6c 65 |esid).{.|.long le|
|00005060| 6e 67 74 68 3b 0d 09 48 | 61 6e 64 6c 65 20 74 68 |ngth;..H|andle th|
|00005070| 65 74 65 78 74 3b 0d 0d | 09 74 68 65 74 65 78 74 |etext;..|.thetext|
|00005080| 20 3d 20 47 65 74 52 65 | 73 6f 75 72 63 65 28 27 | = GetRe|source('|
|00005090| 54 45 58 54 27 2c 20 28 | 73 68 6f 72 74 29 20 72 |TEXT', (|short) r|
|000050a0| 65 73 69 64 29 3b 0d 09 | 69 66 20 28 74 68 65 74 |esid);..|if (thet|
|000050b0| 65 78 74 20 3d 3d 20 4e | 55 4c 4c 29 0d 09 09 72 |ext == N|ULL)...r|
|000050c0| 65 74 75 72 6e 28 2d 31 | 29 3b 0d 09 09 0d 09 67 |eturn(-1|);.....g|
|000050d0| 65 74 63 6f 6e 74 65 78 | 74 28 6b 65 79 64 70 29 |etcontex|t(keydp)|
|000050e0| 3b 09 09 2f 2a 20 74 65 | 78 74 77 61 70 70 65 6e |;../* te|xtwappen|
|000050f0| 64 20 75 73 65 73 20 65 | 6d 64 70 20 2a 2f 0d 09 |d uses e|mdp */..|
|00005100| 0d 09 48 4c 6f 63 6b 28 | 74 68 65 74 65 78 74 29 |..HLock(|thetext)|
|00005110| 3b 0d 09 6c 65 6e 67 74 | 68 20 3d 20 47 65 74 48 |;..lengt|h = GetH|
|00005120| 61 6e 64 6c 65 53 69 7a | 65 28 74 68 65 74 65 78 |andleSiz|e(thetex|
|00005130| 74 29 3b 0d 0d 09 74 65 | 78 74 77 61 70 70 65 6e |t);...te|xtwappen|
|00005140| 64 28 2a 74 68 65 74 65 | 78 74 20 2b 20 34 2c 20 |d(*thete|xt + 4, |
|00005150| 28 6c 6f 6e 67 29 20 28 | 6c 65 6e 67 74 68 20 2d |(long) (|length -|
|00005160| 20 34 29 29 3b 0d 09 09 | 2f 2a 20 54 45 58 54 20 | 4));...|/* TEXT |
|00005170| 74 79 70 65 73 20 68 61 | 76 65 20 34 20 62 79 74 |types ha|ve 4 byt|
|00005180| 65 73 20 6f 66 20 6c 65 | 6e 67 74 68 20 69 6e 20 |es of le|ngth in |
|00005190| 74 68 65 6d 20 2a 2f 0d | 09 48 55 6e 6c 6f 63 6b |them */.|.HUnlock|
|000051a0| 28 74 68 65 74 65 78 74 | 29 3b 0d 7d 0d 0d 0d 2f |(thetext|);.}.../|
|000051b0| 2a 20 73 65 74 20 74 68 | 65 20 74 65 78 74 65 64 |* set th|e texted|
|000051c0| 69 74 20 76 69 65 77 20 | 72 65 63 74 61 6e 67 6c |it view |rectangl|
|000051d0| 65 2c 20 0d 09 61 73 73 | 75 6d 65 73 0d 09 70 6f |e, ..ass|umes..po|
|000051e0| 72 74 52 65 63 74 2e 74 | 6f 70 20 3d 3d 20 30 20 |rtRect.t|op == 0 |
|000051f0| 0d 09 74 65 78 74 65 64 | 69 74 20 6c 69 6e 65 48 |..texted|it lineH|
|00005200| 65 69 67 68 74 20 3d 3d | 20 66 6f 6e 74 73 69 7a |eight ==| fontsiz|
|00005210| 65 0d 2a 2f 0d 0d 73 65 | 74 74 65 76 69 65 77 28 |e.*/..se|tteview(|
|00005220| 76 69 65 77 72 65 63 74 | 29 0d 52 65 63 74 20 2a |viewrect|).Rect *|
|00005230| 20 76 69 65 77 72 65 63 | 74 3b 0d 7b 0d 20 20 20 | viewrec|t;.{. |
|00005240| 20 46 6f 6e 74 49 6e 66 | 6f 20 20 66 69 6e 66 6f | FontInf|o finfo|
|00005250| 3b 0d 09 69 6e 74 20 6c | 69 6e 65 68 65 69 67 68 |;..int l|ineheigh|
|00005260| 74 3b 0d 09 0d 09 47 65 | 74 46 6f 6e 74 49 6e 66 |t;....Ge|tFontInf|
|00005270| 6f 28 26 66 69 6e 66 6f | 29 3b 0d 09 6c 69 6e 65 |o(&finfo|);..line|
|00005280| 68 65 69 67 68 74 20 3d | 20 66 69 6e 66 6f 2e 61 |height =| finfo.a|
|00005290| 73 63 65 6e 74 20 2b 20 | 66 69 6e 66 6f 2e 64 65 |scent + |finfo.de|
|000052a0| 73 63 65 6e 74 20 2b 20 | 66 69 6e 66 6f 2e 6c 65 |scent + |finfo.le|
|000052b0| 61 64 69 6e 67 3b 0d 0d | 09 65 6d 64 70 2d 3e 74 |ading;..|.emdp->t|
|000052c0| 65 78 74 6c 69 6e 65 73 | 20 3d 20 0d 09 09 28 28 |extlines| = ...((|
|000052d0| 74 68 65 50 6f 72 74 2d | 3e 70 6f 72 74 52 65 63 |thePort-|>portRec|
|000052e0| 74 2e 62 6f 74 74 6f 6d | 20 2d 20 74 68 65 50 6f |t.bottom| - thePo|
|000052f0| 72 74 2d 3e 70 6f 72 74 | 52 65 63 74 2e 74 6f 70 |rt->port|Rect.top|
|00005300| 20 2d 20 54 45 58 54 49 | 4e 53 45 54 20 2d 20 34 | - TEXTI|NSET - 4|
|00005310| 29 20 0d 09 09 09 09 2f | 20 6c 69 6e 65 68 65 69 |) ...../| linehei|
|00005320| 67 68 74 20 29 3b 0d 0d | 09 76 69 65 77 72 65 63 |ght );..|.viewrec|
|00005330| 74 2d 3e 74 6f 70 20 3d | 20 54 45 58 54 49 4e 53 |t->top =| TEXTINS|
|00005340| 45 54 3b 0d 09 76 69 65 | 77 72 65 63 74 2d 3e 6c |ET;..vie|wrect->l|
|00005350| 65 66 74 20 3d 20 74 68 | 65 50 6f 72 74 2d 3e 70 |eft = th|ePort->p|
|00005360| 6f 72 74 52 65 63 74 2e | 6c 65 66 74 3b 0d 09 76 |ortRect.|left;..v|
|00005370| 69 65 77 72 65 63 74 2d | 3e 62 6f 74 74 6f 6d 20 |iewrect-|>bottom |
|00005380| 3d 20 76 69 65 77 72 65 | 63 74 2d 3e 74 6f 70 20 |= viewre|ct->top |
|00005390| 2b 20 65 6d 64 70 2d 3e | 74 65 78 74 6c 69 6e 65 |+ emdp->|textline|
|000053a0| 73 20 2a 20 6c 69 6e 65 | 68 65 69 67 68 74 3b 0d |s * line|height;.|
|000053b0| 09 09 2f 2a 20 72 6f 75 | 6e 64 20 68 65 69 67 68 |../* rou|nd heigh|
|000053c0| 74 20 6f 66 20 76 69 65 | 77 20 72 65 63 74 20 74 |t of vie|w rect t|
|000053d0| 6f 20 65 76 65 6e 20 62 | 69 74 20 6d 75 6c 74 69 |o even b|it multi|
|000053e0| 70 6c 65 20 6f 66 20 66 | 6f 6e 74 20 73 69 7a 65 |ple of f|ont size|
|000053f0| 20 2a 2f 0d 09 76 69 65 | 77 72 65 63 74 2d 3e 72 | */..vie|wrect->r|
|00005400| 69 67 68 74 20 3d 20 74 | 68 65 50 6f 72 74 2d 3e |ight = t|hePort->|
|00005410| 70 6f 72 74 52 65 63 74 | 2e 72 69 67 68 74 20 2d |portRect|.right -|
|00005420| 20 31 36 3b 0d 7d 0d 0d | 0d 2f 2a 20 73 65 74 20 | 16;.}..|./* set |
|00005430| 74 68 65 20 74 65 78 74 | 65 64 69 74 20 64 65 73 |the text|edit des|
|00005440| 74 69 6e 61 74 69 6f 6e | 20 72 65 63 74 61 6e 67 |tination| rectang|
|00005450| 6c 65 20 77 68 69 63 68 | 20 73 65 74 73 20 77 72 |le which| sets wr|
|00005460| 61 70 20 62 6f 75 6e 64 | 61 72 69 65 73 20 2a 2f |ap bound|aries */|
|00005470| 0d 0d 73 65 74 74 65 64 | 65 73 74 28 64 65 73 74 |..setted|est(dest|
|00005480| 72 65 63 74 29 0d 52 65 | 63 74 20 2a 20 64 65 73 |rect).Re|ct * des|
|00005490| 74 72 65 63 74 3b 0d 7b | 0d 09 64 65 73 74 72 65 |trect;.{|..destre|
|000054a0| 63 74 2d 3e 74 6f 70 20 | 3d 20 54 45 58 54 49 4e |ct->top |= TEXTIN|
|000054b0| 53 45 54 3b 0d 09 64 65 | 73 74 72 65 63 74 2d 3e |SET;..de|strect->|
|000054c0| 6c 65 66 74 20 3d 20 54 | 45 58 54 49 4e 53 45 54 |left = T|EXTINSET|
|000054d0| 3b 0d 09 64 65 73 74 72 | 65 63 74 2d 3e 62 6f 74 |;..destr|ect->bot|
|000054e0| 74 6f 6d 20 3d 20 74 68 | 65 50 6f 72 74 2d 3e 70 |tom = th|ePort->p|
|000054f0| 6f 72 74 52 65 63 74 2e | 62 6f 74 74 6f 6d 20 2d |ortRect.|bottom -|
|00005500| 20 74 68 65 50 6f 72 74 | 2d 3e 70 6f 72 74 52 65 | thePort|->portRe|
|00005510| 63 74 2e 74 6f 70 3b 0d | 09 64 65 73 74 72 65 63 |ct.top;.|.destrec|
|00005520| 74 2d 3e 72 69 67 68 74 | 20 3d 20 74 68 65 50 6f |t->right| = thePo|
|00005530| 72 74 2d 3e 70 6f 72 74 | 52 65 63 74 2e 72 69 67 |rt->port|Rect.rig|
|00005540| 68 74 20 2d 20 32 30 20 | 2d 20 28 32 20 2a 20 65 |ht - 20 |- (2 * e|
|00005550| 6d 64 70 2d 3e 68 6f 66 | 66 73 65 74 29 3b 0d 7d |mdp->hof|fset);.}|
|00005560| 09 0d 0d 0d 23 69 66 64 | 65 66 20 55 53 45 54 45 |....#ifd|ef USETE|
|00005570| 58 54 57 49 4e 44 46 49 | 4e 44 0d 0d 2f 2a 20 74 |XTWINDFI|ND../* t|
|00005580| 68 69 73 20 72 6f 75 74 | 69 6e 65 20 66 69 6e 64 |his rout|ine find|
|00005590| 73 20 61 20 73 74 72 69 | 6e 67 20 69 6e 20 61 20 |s a stri|ng in a |
|000055a0| 54 65 78 74 45 64 69 74 | 20 72 65 63 6f 72 64 20 |TextEdit| record |
|000055b0| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 46 49 4e 44 |*/..#def|ine FIND|
|000055c0| 4d 41 58 09 31 30 32 34 | 0d 23 64 65 66 69 6e 65 |MAX.1024|.#define|
|000055d0| 20 46 4f 52 57 41 52 44 | 20 09 31 0d 23 64 65 66 | FORWARD| .1.#def|
|000055e0| 69 6e 65 20 42 41 43 4b | 57 41 52 44 09 32 0d 0d |ine BACK|WARD.2..|
|000055f0| 63 68 61 72 20 66 73 74 | 72 69 6e 67 5b 46 49 4e |char fst|ring[FIN|
|00005600| 44 4d 41 58 5d 3b 0d 0d | 66 69 6e 64 73 74 72 69 |DMAX];..|findstri|
|00005610| 6e 67 28 74 65 78 74 68 | 61 6e 64 2c 20 66 6f 75 |ng(texth|and, fou|
|00005620| 6e 64 61 74 2c 20 64 69 | 72 29 0d 54 45 48 61 6e |ndat, di|r).TEHan|
|00005630| 64 6c 65 20 09 74 65 78 | 74 68 61 6e 64 3b 0d 6c |dle .tex|thand;.l|
|00005640| 6f 6e 67 20 2a 20 09 66 | 6f 75 6e 64 61 74 3b 0d |ong * .f|oundat;.|
|00005650| 69 6e 74 20 64 69 72 3b | 0d 7b 0d 09 63 68 61 72 |int dir;|.{..char|
|00005660| 20 2a 20 74 65 78 74 3b | 0d 09 69 6e 74 20 73 74 | * text;|..int st|
|00005670| 61 72 74 3b 0d 09 69 6e | 74 20 65 6e 64 3b 0d 09 |art;..in|t end;..|
|00005680| 69 6e 74 20 6c 65 6e 67 | 74 68 3b 0d 09 69 6e 74 |int leng|th;..int|
|00005690| 20 63 6f 75 6e 74 3b 0d | 09 69 6e 74 20 6f 66 66 | count;.|.int off|
|000056a0| 73 65 74 3b 0d 09 69 6e | 74 20 73 6b 69 70 3b 0d |set;..in|t skip;.|
|000056b0| 0d 09 63 6f 75 6e 74 20 | 3d 20 73 74 72 6c 65 6e |..count |= strlen|
|000056c0| 28 26 66 73 74 72 69 6e | 67 5b 30 5d 29 3b 09 2f |(&fstrin|g[0]);./|
|000056d0| 2a 20 54 4f 44 4f 20 73 | 68 6f 75 6c 64 20 62 65 |* TODO s|hould be|
|000056e0| 20 65 6c 69 6d 69 6e 61 | 74 65 64 20 2a 2f 0d 0d | elimina|ted */..|
|000056f0| 09 74 65 78 74 20 3d 20 | 2a 28 2a 74 65 78 74 68 |.text = |*(*texth|
|00005700| 61 6e 64 29 2d 3e 68 54 | 65 78 74 3b 20 0d 09 73 |and)->hT|ext; ..s|
|00005710| 74 61 72 74 20 3d 20 28 | 2a 74 65 78 74 68 61 6e |tart = (|*texthan|
|00005720| 64 29 2d 3e 73 65 6c 53 | 74 61 72 74 3b 0d 09 65 |d)->selS|tart;..e|
|00005730| 6e 64 20 3d 20 28 2a 74 | 65 78 74 68 61 6e 64 29 |nd = (*t|exthand)|
|00005740| 2d 3e 73 65 6c 45 6e 64 | 3b 0d 09 6c 65 6e 67 74 |->selEnd|;..lengt|
|00005750| 68 20 3d 20 28 2a 74 65 | 78 74 68 61 6e 64 29 2d |h = (*te|xthand)-|
|00005760| 3e 74 65 4c 65 6e 67 74 | 68 3b 0d 09 73 6b 69 70 |>teLengt|h;..skip|
|00005770| 20 3d 20 28 73 74 61 72 | 74 20 3d 3d 20 65 6e 64 | = (star|t == end|
|00005780| 29 20 3f 20 30 20 3a 20 | 31 3b 0d 09 69 66 20 28 |) ? 0 : |1;..if (|
|00005790| 64 69 72 20 3d 3d 20 46 | 4f 52 57 41 52 44 29 20 |dir == F|ORWARD) |
|000057a0| 7b 0d 09 09 69 66 20 28 | 28 6f 66 66 73 65 74 20 |{...if (|(offset |
|000057b0| 3d 20 6d 61 74 63 68 28 | 66 73 74 72 69 6e 67 2c |= match(|fstring,|
|000057c0| 20 74 65 78 74 20 2b 20 | 73 74 61 72 74 20 2b 20 | text + |start + |
|000057d0| 73 6b 69 70 2c 20 74 65 | 78 74 20 2b 20 6c 65 6e |skip, te|xt + len|
|000057e0| 67 74 68 2c 20 64 69 72 | 29 29 20 3e 3d 20 30 29 |gth, dir|)) >= 0)|
|000057f0| 20 7b 0d 09 09 09 2a 66 | 6f 75 6e 64 61 74 20 3d | {....*f|oundat =|
|00005800| 20 73 74 61 72 74 20 2b | 20 73 6b 69 70 20 2b 20 | start +| skip + |
|00005810| 6f 66 66 73 65 74 3b 0d | 09 09 09 72 65 74 75 72 |offset;.|...retur|
|00005820| 6e 28 63 6f 75 6e 74 29 | 3b 0d 09 09 7d 0d 09 09 |n(count)|;...}...|
|00005830| 2f 2a 20 4e 6f 74 20 66 | 6f 75 6e 64 20 6f 6e 20 |/* Not f|ound on |
|00005840| 66 69 72 73 74 20 74 72 | 79 3b 20 77 72 61 70 20 |first tr|y; wrap |
|00005850| 61 6e 64 20 73 65 61 72 | 63 68 20 74 6f 20 69 6e |and sear|ch to in|
|00005860| 69 74 69 61 6c 20 70 6f | 73 69 74 69 6f 6e 20 2a |itial po|sition *|
|00005870| 2f 0d 09 09 69 66 20 28 | 28 6f 66 66 73 65 74 20 |/...if (|(offset |
|00005880| 3d 20 6d 61 74 63 68 28 | 66 73 74 72 69 6e 67 2c |= match(|fstring,|
|00005890| 20 74 65 78 74 2c 20 74 | 65 78 74 20 2b 20 73 74 | text, t|ext + st|
|000058a0| 61 72 74 20 2b 20 63 6f | 75 6e 74 2c 20 64 69 72 |art + co|unt, dir|
|000058b0| 29 29 20 3e 3d 20 30 29 | 20 7b 0d 09 09 09 2a 66 |)) >= 0)| {....*f|
|000058c0| 6f 75 6e 64 61 74 20 3d | 20 6f 66 66 73 65 74 3b |oundat =| offset;|
|000058d0| 0d 09 09 09 72 65 74 75 | 72 6e 28 63 6f 75 6e 74 |....retu|rn(count|
|000058e0| 29 3b 0d 09 09 7d 0d 09 | 7d 0d 09 65 6c 73 65 20 |);...}..|}..else |
|000058f0| 7b 0d 09 09 69 66 20 28 | 28 6f 66 66 73 65 74 20 |{...if (|(offset |
|00005900| 3d 20 6d 61 74 63 68 28 | 66 73 74 72 69 6e 67 2c |= match(|fstring,|
|00005910| 20 74 65 78 74 2c 20 74 | 65 78 74 20 2b 20 73 74 | text, t|ext + st|
|00005920| 61 72 74 2c 20 64 69 72 | 29 29 20 3e 3d 20 30 29 |art, dir|)) >= 0)|
|00005930| 20 7b 0d 09 09 09 2a 66 | 6f 75 6e 64 61 74 20 3d | {....*f|oundat =|
|00005940| 20 6f 66 66 73 65 74 3b | 0d 09 09 09 72 65 74 75 | offset;|....retu|
|00005950| 72 6e 28 63 6f 75 6e 74 | 29 3b 0d 09 09 7d 0d 09 |rn(count|);...}..|
|00005960| 09 2f 2a 20 4e 6f 74 20 | 66 6f 75 6e 64 20 6f 6e |./* Not |found on|
|00005970| 20 66 69 72 73 74 20 74 | 72 79 3b 20 77 72 61 70 | first t|ry; wrap|
|00005980| 20 61 6e 64 20 73 65 61 | 72 63 68 20 74 6f 20 69 | and sea|rch to i|
|00005990| 6e 69 74 69 61 6c 20 70 | 6f 73 69 74 69 6f 6e 20 |nitial p|osition |
|000059a0| 2a 2f 0d 09 09 69 66 20 | 28 28 6f 66 66 73 65 74 |*/...if |((offset|
|000059b0| 20 3d 20 6d 61 74 63 68 | 28 66 73 74 72 69 6e 67 | = match|(fstring|
|000059c0| 2c 20 74 65 78 74 20 2b | 20 73 74 61 72 74 2c 20 |, text +| start, |
|000059d0| 74 65 78 74 20 2b 20 6c | 65 6e 67 74 68 2c 20 64 |text + l|ength, d|
|000059e0| 69 72 29 29 20 3e 3d 20 | 30 29 20 7b 0d 09 09 09 |ir)) >= |0) {....|
|000059f0| 2a 66 6f 75 6e 64 61 74 | 20 3d 20 73 74 61 72 74 |*foundat| = start|
|00005a00| 20 2b 20 6f 66 66 73 65 | 74 3b 0d 09 09 09 72 65 | + offse|t;....re|
|00005a10| 74 75 72 6e 28 63 6f 75 | 6e 74 29 3b 0d 09 09 7d |turn(cou|nt);...}|
|00005a20| 0d 09 7d 0d 09 2f 2a 20 | 6e 6f 20 6d 61 74 63 68 |..}../* |no match|
|00005a30| 20 2a 2f 0d 09 72 65 74 | 75 72 6e 28 30 29 3b 0d | */..ret|urn(0);.|
|00005a40| 7d 0d 0d 2f 2a 20 66 69 | 6e 64 20 61 20 6d 61 74 |}../* fi|nd a mat|
|00005a50| 63 68 2c 20 72 65 74 75 | 72 6e 69 6e 67 20 74 68 |ch, retu|rning th|
|00005a60| 65 20 6f 66 66 73 65 74 | 20 66 72 6f 6d 20 74 68 |e offset| from th|
|00005a70| 65 20 73 74 61 72 74 20 | 76 61 6c 75 65 20 2a 2f |e start |value */|
|00005a80| 0d 0d 6d 61 74 63 68 28 | 73 74 72 69 6e 67 2c 20 |..match(|string, |
|00005a90| 73 74 61 72 74 70 2c 20 | 65 6e 64 70 2c 20 64 69 |startp, |endp, di|
|00005aa0| 72 29 0d 63 68 61 72 20 | 2a 20 73 74 72 69 6e 67 |r).char |* string|
|00005ab0| 3b 0d 72 65 67 69 73 74 | 65 72 20 63 68 61 72 20 |;.regist|er char |
|00005ac0| 2a 20 73 74 61 72 74 70 | 3b 0d 72 65 67 69 73 74 |* startp|;.regist|
|00005ad0| 65 72 20 63 68 61 72 20 | 2a 20 65 6e 64 70 3b 0d |er char |* endp;.|
|00005ae0| 69 6e 74 20 64 69 72 3b | 0d 7b 0d 09 72 65 67 69 |int dir;|.{..regi|
|00005af0| 73 74 65 72 20 69 6e 74 | 20 63 6f 75 6e 74 3b 0d |ster int| count;.|
|00005b00| 09 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 74 6f |.registe|r int to|
|00005b10| 74 61 6c 3b 0d 09 72 65 | 67 69 73 74 65 72 20 63 |tal;..re|gister c|
|00005b20| 68 61 72 20 2a 20 73 74 | 72 70 3b 0d 09 72 65 67 |har * st|rp;..reg|
|00005b30| 69 73 74 65 72 20 63 68 | 61 72 20 2a 20 66 73 74 |ister ch|ar * fst|
|00005b40| 72 70 3b 0d 0d 09 63 6f | 75 6e 74 20 3d 20 30 3b |rp;...co|unt = 0;|
|00005b50| 0d 09 74 6f 74 61 6c 20 | 3d 20 73 74 72 6c 65 6e |..total |= strlen|
|00005b60| 28 73 74 72 69 6e 67 29 | 3b 0d 09 69 66 20 28 64 |(string)|;..if (d|
|00005b70| 69 72 20 3d 3d 20 46 4f | 52 57 41 52 44 29 20 7b |ir == FO|RWARD) {|
|00005b80| 0d 09 09 2f 2a 20 73 65 | 61 72 63 68 20 74 6f 20 |.../* se|arch to |
|00005b90| 65 6e 64 20 2a 2f 0d 09 | 09 73 74 72 70 20 3d 20 |end */..|.strp = |
|00005ba0| 73 74 61 72 74 70 3b 0d | 09 09 66 6f 72 20 28 66 |startp;.|..for (f|
|00005bb0| 73 74 72 70 20 3d 20 73 | 74 72 69 6e 67 3b 20 73 |strp = s|tring; s|
|00005bc0| 74 72 70 20 3c 20 65 6e | 64 70 3b 20 73 74 72 70 |trp < en|dp; strp|
|00005bd0| 2b 2b 29 20 20 7b 0d 09 | 09 09 69 66 20 28 2a 66 |++) {..|..if (*f|
|00005be0| 73 74 72 70 20 3d 3d 20 | 2a 73 74 72 70 29 20 7b |strp == |*strp) {|
|00005bf0| 09 09 0d 09 09 09 09 2f | 2a 20 63 6f 6e 74 65 6e |......./|* conten|
|00005c00| 74 73 20 65 71 75 61 6c | 2c 20 74 72 79 20 6e 65 |ts equal|, try ne|
|00005c10| 78 74 20 6d 61 74 63 68 | 20 2a 2f 0d 09 09 09 09 |xt match| */.....|
|00005c20| 69 66 20 28 2b 2b 63 6f | 75 6e 74 20 3d 3d 20 74 |if (++co|unt == t|
|00005c30| 6f 74 61 6c 29 20 20 7b | 0d 09 09 09 09 09 2f 2a |otal) {|....../*|
|00005c40| 20 73 65 61 72 63 68 20 | 73 75 63 63 65 65 64 73 | search |succeeds|
|00005c50| 2c 20 72 65 74 75 72 6e | 20 6f 66 66 73 65 74 20 |, return| offset |
|00005c60| 66 72 6f 6d 20 73 74 61 | 72 74 20 2a 2f 0d 09 09 |from sta|rt */...|
|00005c70| 09 09 09 72 65 74 75 72 | 6e 28 73 74 72 70 20 2d |...retur|n(strp -|
|00005c80| 20 73 74 61 72 74 70 20 | 2d 20 63 6f 75 6e 74 20 | startp |- count |
|00005c90| 2b 20 31 29 3b 0d 09 09 | 09 09 7d 0d 09 09 09 09 |+ 1);...|..}.....|
|00005ca0| 66 73 74 72 70 2b 2b 3b | 0d 09 09 09 09 63 6f 6e |fstrp++;|.....con|
|00005cb0| 74 69 6e 75 65 3b 0d 09 | 09 09 7d 0d 09 09 09 65 |tinue;..|..}....e|
|00005cc0| 6c 73 65 20 7b 0d 09 09 | 09 09 2f 2a 20 61 20 6e |lse {...|../* a n|
|00005cd0| 75 6d 62 65 72 20 6f 66 | 20 6d 61 74 63 68 65 73 |umber of| matches|
|00005ce0| 20 68 61 76 65 20 66 61 | 69 6c 65 64 20 2a 2f 0d | have fa|iled */.|
|00005cf0| 09 09 09 09 66 73 74 72 | 70 20 3d 20 73 74 72 69 |....fstr|p = stri|
|00005d00| 6e 67 3b 0d 09 09 09 09 | 73 74 72 70 20 2d 3d 20 |ng;.....|strp -= |
|00005d10| 63 6f 75 6e 74 3b 0d 09 | 09 09 09 63 6f 75 6e 74 |count;..|...count|
|00005d20| 20 3d 20 30 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 | = 0;...|.}...}..|
|00005d30| 7d 0d 09 65 6c 73 65 20 | 7b 0d 09 09 2f 2a 20 73 |}..else |{.../* s|
|00005d40| 65 61 72 63 68 20 62 61 | 63 6b 77 61 72 64 73 20 |earch ba|ckwards |
|00005d50| 2a 2f 0d 09 09 73 74 72 | 70 20 3d 20 65 6e 64 70 |*/...str|p = endp|
|00005d60| 3b 0d 09 09 66 73 74 72 | 70 20 3d 20 73 74 72 69 |;...fstr|p = stri|
|00005d70| 6e 67 20 2b 20 74 6f 74 | 61 6c 20 2d 20 31 3b 0d |ng + tot|al - 1;.|
|00005d80| 09 09 09 2f 2a 20 6f 6e | 20 6c 61 73 74 20 63 68 |.../* on| last ch|
|00005d90| 61 72 61 63 74 65 72 20 | 69 6e 20 73 74 72 69 6e |aracter |in strin|
|00005da0| 67 20 2a 2f 0d 09 09 77 | 68 69 6c 65 20 28 2d 2d |g */...w|hile (--|
|00005db0| 73 74 72 70 20 3e 3d 20 | 73 74 61 72 74 70 29 20 |strp >= |startp) |
|00005dc0| 20 7b 0d 09 09 09 69 66 | 20 28 2a 66 73 74 72 70 | {....if| (*fstrp|
|00005dd0| 20 3d 3d 20 2a 73 74 72 | 70 29 20 7b 0d 09 09 09 | == *str|p) {....|
|00005de0| 09 2f 2a 20 63 6f 6e 74 | 65 6e 74 73 20 65 71 75 |./* cont|ents equ|
|00005df0| 61 6c 2c 20 74 72 79 20 | 6e 65 78 74 20 6d 61 74 |al, try |next mat|
|00005e00| 63 68 20 2a 2f 0d 09 09 | 09 09 2d 2d 66 73 74 72 |ch */...|..--fstr|
|00005e10| 70 3b 0d 09 09 09 09 69 | 66 20 28 2b 2b 63 6f 75 |p;.....i|f (++cou|
|00005e20| 6e 74 20 3d 3d 20 74 6f | 74 61 6c 29 20 20 7b 0d |nt == to|tal) {.|
|00005e30| 09 09 09 09 09 2f 2a 20 | 73 65 61 72 63 68 20 73 |...../* |search s|
|00005e40| 75 63 63 65 65 64 73 2c | 20 72 65 74 75 72 6e 20 |ucceeds,| return |
|00005e50| 6f 66 66 73 65 74 20 66 | 72 6f 6d 20 73 74 61 72 |offset f|rom star|
|00005e60| 74 20 2a 2f 0d 09 09 09 | 09 09 72 65 74 75 72 6e |t */....|..return|
|00005e70| 28 73 74 72 70 20 2d 20 | 73 74 61 72 74 70 29 3b |(strp - |startp);|
|00005e80| 0d 09 09 09 09 7d 0d 09 | 09 09 09 63 6f 6e 74 69 |.....}..|...conti|
|00005e90| 6e 75 65 3b 0d 09 09 09 | 7d 0d 09 09 09 65 6c 73 |nue;....|}....els|
|00005ea0| 65 20 7b 0d 09 09 09 09 | 2f 2a 20 61 20 6e 75 6d |e {.....|/* a num|
|00005eb0| 62 65 72 20 6f 66 20 6d | 61 74 63 68 65 73 20 68 |ber of m|atches h|
|00005ec0| 61 76 65 20 66 61 69 6c | 65 64 20 74 6f 20 70 61 |ave fail|ed to pa|
|00005ed0| 6e 20 6f 75 74 20 2a 2f | 0d 09 09 09 09 66 73 74 |n out */|.....fst|
|00005ee0| 72 70 20 3d 20 73 74 72 | 69 6e 67 20 2b 20 74 6f |rp = str|ing + to|
|00005ef0| 74 61 6c 20 2d 20 31 3b | 0d 09 09 09 09 73 74 72 |tal - 1;|.....str|
|00005f00| 70 20 2b 3d 20 63 6f 75 | 6e 74 3b 0d 09 09 09 09 |p += cou|nt;.....|
|00005f10| 63 6f 75 6e 74 20 3d 20 | 30 3b 0d 09 09 09 7d 0d |count = |0;....}.|
|00005f20| 09 09 7d 0d 09 7d 0d 09 | 72 65 74 75 72 6e 28 2d |..}..}..|return(-|
|00005f30| 31 29 3b 0d 7d 0d 0d 0d | 74 65 78 74 6e 63 6f 70 |1);.}...|textncop|
|00005f40| 79 28 73 6f 75 72 63 65 | 2c 20 64 65 73 74 69 6e |y(source|, destin|
|00005f50| 61 74 69 6f 6e 2c 20 6c | 65 6e 2c 20 6d 61 78 6c |ation, l|en, maxl|
|00005f60| 65 6e 29 0d 63 68 61 72 | 20 2a 20 73 6f 75 72 63 |en).char| * sourc|
|00005f70| 65 3b 0d 63 68 61 72 20 | 2a 20 64 65 73 74 69 6e |e;.char |* destin|
|00005f80| 61 74 69 6f 6e 3b 0d 69 | 6e 74 20 6c 65 6e 3b 0d |ation;.i|nt len;.|
|00005f90| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 6d 61 78 |register| int max|
|00005fa0| 6c 65 6e 3b 09 09 09 09 | 2f 2a 20 6d 61 78 69 6d |len;....|/* maxim|
|00005fb0| 75 6d 20 6c 65 6e 67 74 | 68 20 69 6e 20 64 65 73 |um lengt|h in des|
|00005fc0| 74 69 6e 61 74 69 6f 6e | 20 2a 2f 0d 7b 0d 09 72 |tination| */.{..r|
|00005fd0| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 20 73 |egister |char * s|
|00005fe0| 72 63 70 3b 0d 09 72 65 | 67 69 73 74 65 72 20 63 |rcp;..re|gister c|
|00005ff0| 68 61 72 20 2a 20 64 65 | 73 74 70 3b 0d 09 72 65 |har * de|stp;..re|
|00006000| 67 69 73 74 65 72 20 63 | 68 61 72 20 2a 20 65 6e |gister c|har * en|
|00006010| 64 70 6f 73 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |dpos;..r|egister |
|00006020| 69 6e 74 20 63 6f 75 6e | 74 3b 0d 0d 09 63 6f 75 |int coun|t;...cou|
|00006030| 6e 74 20 3d 20 30 3b 0d | 09 73 72 63 70 20 3d 20 |nt = 0;.|.srcp = |
|00006040| 73 6f 75 72 63 65 3b 0d | 09 64 65 73 74 70 20 3d |source;.|.destp =|
|00006050| 20 64 65 73 74 69 6e 61 | 74 69 6f 6e 3b 0d 09 66 | destina|tion;..f|
|00006060| 6f 72 20 28 65 6e 64 70 | 6f 73 20 3d 20 73 72 63 |or (endp|os = src|
|00006070| 70 20 2b 20 6c 65 6e 3b | 20 73 72 63 70 20 3c 20 |p + len;| srcp < |
|00006080| 65 6e 64 70 6f 73 3b 20 | 64 65 73 74 70 2b 2b 2c |endpos; |destp++,|
|00006090| 20 73 72 63 70 2b 2b 29 | 20 7b 0d 09 09 2a 64 65 | srcp++)| {...*de|
|000060a0| 73 74 70 20 3d 20 2a 73 | 72 63 70 3b 0d 09 09 69 |stp = *s|rcp;...i|
|000060b0| 66 20 28 2b 2b 63 6f 75 | 6e 74 20 3e 3d 20 6d 61 |f (++cou|nt >= ma|
|000060c0| 78 6c 65 6e 29 20 7b 0d | 09 09 09 2f 2a 20 77 65 |xlen) {.|.../* we|
|000060d0| 20 63 61 6e 27 74 20 6d | 6f 76 65 20 74 68 65 20 | can't m|ove the |
|000060e0| 77 68 6f 6c 65 20 74 68 | 69 6e 67 20 2a 2f 0d 09 |whole th|ing */..|
|000060f0| 09 09 2a 64 65 73 74 70 | 20 3d 20 27 5c 30 27 3b |..*destp| = '\0';|
|00006100| 0d 09 09 09 72 65 74 75 | 72 6e 28 2d 31 29 3b 0d |....retu|rn(-1);.|
|00006110| 09 09 7d 0d 09 7d 0d 09 | 2a 64 65 73 74 70 20 3d |..}..}..|*destp =|
|00006120| 20 27 5c 30 27 3b 0d 7d | 0d 0d 0d 23 65 6e 64 69 | '\0';.}|...#endi|
|00006130| 66 0d 0d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |f.......|........|
|00006140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006180| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 32 |.......L|...L...2|
|00006190| 06 00 00 00 00 07 4d 50 | 53 50 00 07 00 00 00 00 |......MP|SP......|
|000061a0| 24 73 61 64 65 00 00 00 | 01 49 43 4e 23 00 01 00 |$sade...|.ICN#...|
|000061b0| 0a 74 65 78 74 65 64 69 | 74 2e 63 01 02 00 00 00 |.textedi|t.c.....|
|000061c0| 50 61 72 74 53 49 54 78 | 00 00 00 00 00 00 00 00 |PartSITx|........|
|000061d0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|000061e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000061f0| 00 00 a9 8d 3a 72 00 00 | 00 00 00 00 01 7e f0 3f |....:r..|.....~.?|
|00006200| 41 05 f8 61 c1 07 0c c0 | c1 06 06 80 41 04 02 00 |A..a....|....A...|
|00006210| 41 04 00 07 c1 0f c0 0f | c1 0f e0 18 21 10 30 30 |A.......|....!.00|
|00006220| 11 20 18 60 0f c0 0c c0 | 07 c0 06 00 1c 70 00 00 |. .`....|.....p..|
|00006230| 1c 70 00 00 1c 70 00 00 | 08 20 00 00 0e e0 00 00 |.p...p..|. ......|
|00006240| 13 90 00 00 22 88 00 00 | 40 04 00 01 80 03 00 06 |...."...|@.......|
|00006250| 00 00 c0 00 07 80 00 00 | 0f c0 00 00 1f e0 00 00 |........|........|
|00006260| 3f f0 00 00 7f f8 00 00 | 3f fc 00 00 3f f8 00 00 |?.......|?...?...|
|00006270| 7f fc 00 00 7f fc 00 00 | 7f fc 00 00 7f fc 00 00 |........|........|
|00006280| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 0a 20 2d |...H..Mo|naco.. -|
|00006290| 00 00 0b 50 00 01 38 f0 | 00 ea 00 00 00 ea 01 f1 |...P..8.|........|
|000062a0| 00 f5 00 00 00 f5 00 06 | 00 04 00 27 00 00 01 e1 |........|...'....|
|000062b0| 02 00 00 27 00 00 01 e1 | 02 00 a4 8c f4 ac 00 00 |...'....|........|
|000062c0| 43 2a 00 00 43 33 00 00 | 40 d1 01 00 00 00 01 00 |C*..C3..|@.......|
|000062d0| 00 00 01 4c 00 00 00 4c | 00 00 00 32 00 0f 6e b4 |...L...L|...2..n.|
|000062e0| 04 6a 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.j.....2|..MPSR..|
|000062f0| 00 0a 03 ed ff ff 00 00 | 00 00 00 10 a8 14 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+